【问题标题】:jsonPath predicate to return the whole JSONjsonPath 谓词返回整个 JSON
【发布时间】:2020-02-26 20:56:33
【问题描述】:

如果条件匹配,我想返回整个 JSON。

测试 Json:

    {
            "EVENTID": 2624367601,
            "RECEIVERNAME": "CM.MYHR",
            "SENDERNAME": "CM.EIS.CF1",
            "AGREEMENTNAME": null   
    }

我一直在https://jsonpath.curiousconcept.com 中尝试,但无法弄清楚。 我认为下面的表达式应该可以工作,但它总是返回空。

$.[?(@.SENDERNAME==CM.EIS.CF1)]

请帮忙。

【问题讨论】:

    标签: jsonpath json-path-expression


    【解决方案1】:

    你只有一个 json 的片段。试试这样:

    {
      "events": [
    {
                "EVENTID": 2624367601,
                "RECEIVERNAME": "CM.MYHR",
                "SENDERNAME": "CM.EIS.CF1",
                "AGREEMENTNAME": null   
        }
    
    ]
    }
    

    并使用:

    $.*[?(@.SENDERNAME=='CM.EIS.CF1')]
    

    【讨论】:

    • 谢谢杰克。由于我无法更改不是数组的输入 JSON 格式,这是否意味着我不能使用仅适用于 ARRAY 的 jsonPath 过滤?过滤纯 json 的任何替代方案或解决方法?
    • @Autorun - 你可以使用 python 和几个 json 和 jsonpath 库来做到这一点(或类似的东西);他们可以处理您的原始测试 json 而无需修改它。如果这与您相关,我可以为您提供更多信息(或发布答案)。
    【解决方案2】:

    如果你想要 while json 来自输入,那么根据我的理解你必须使用下面的表达式:

    $.
    

    我在https://jsonpath.curiousconcept.com/测试过

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多