jsonPath谓词返回整个JSON

时间:2020-02-26 20:56:33

标签: jsonpath json-path-expression

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

测试Json:

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

我一直在尝试https://jsonpath.curiousconcept.com,但无法解决。 我以为下面的表达式应该起作用,但是它总是返回空。

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

请帮助。

2 个答案:

答案 0 :(得分:0)

您只有一个json片段。像这样尝试:

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

]
}

并使用:

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

答案 1 :(得分:0)

如果要从输入中同时获取json,那么根据我的理解,您必须使用以下表达式:

$ go clean
$ time GO_ENABLED=0 GOOS=linux go build -o main -installsuffix cgo -ldflags '-w'

real    0m0,233s
user    0m0,278s
sys 0m0,094s

$ time GO_ENABLED=0 GOOS=linux go build -o main -installsuffix cgo -ldflags '-w'

real    0m0,076s
user    0m0,098s
sys 0m0,053s

$ go clean
$ time GO_ENABLED=0 GOOS=linux go build -o main -installsuffix cgo -ldflags '-w'

real    0m0,238s
user    0m0,315s
sys 0m0,070s

我已经在https://jsonpath.curiousconcept.com/

中对其进行了测试