涉及两个根值的 JsonPath 表达式
JsonPath expression involving two root values
我关注 JSON,我需要获取与 emailupdaterequest.emailContact 匹配的 emailID 的 personEmailContact。我试着写这样的表达
$.responsebody[?(@.personEmailContact.emailId ==$.emailupdaterequest.emailContact.emailId)]
但这似乎不起作用,我需要编写一个无需替换即可工作的表达式。谁能帮忙指点一下
{
"emailupdaterequest": {
"emailContact": {
"emailId": "admin@gmail.com",
"contactName": "ADMIN EMAIL"
}
},
"responsebody": [
{
"personEmailContact": {
"emailId": "admin@gmail.com",
"contactTypeCode": "P",
"contactName": "Joe"
}
},
{
"personEmailContact": {
"emailId": "nonadmin@gmail.com",
"contactTypeCode": "P",
"contactName": "john"
}
}
]
}
您应该能够在表达式中使用根选择器 $
。这将允许您将数组元素内的值与 JSON:
中其他地方的值进行比较
$.responsebody[?(@.personEmailContact.emailId == $.emailupdaterequest.emailContact.emailId)]
注意 $.emailupdaterequest.emailContact.emailId
。
$
表示路径是从 JSON 的根计算的,而 @
表示路径是在处理器迭代数组时从当前项计算的。
我关注 JSON,我需要获取与 emailupdaterequest.emailContact 匹配的 emailID 的 personEmailContact。我试着写这样的表达 $.responsebody[?(@.personEmailContact.emailId ==$.emailupdaterequest.emailContact.emailId)] 但这似乎不起作用,我需要编写一个无需替换即可工作的表达式。谁能帮忙指点一下
{
"emailupdaterequest": {
"emailContact": {
"emailId": "admin@gmail.com",
"contactName": "ADMIN EMAIL"
}
},
"responsebody": [
{
"personEmailContact": {
"emailId": "admin@gmail.com",
"contactTypeCode": "P",
"contactName": "Joe"
}
},
{
"personEmailContact": {
"emailId": "nonadmin@gmail.com",
"contactTypeCode": "P",
"contactName": "john"
}
}
]
}
您应该能够在表达式中使用根选择器 $
。这将允许您将数组元素内的值与 JSON:
$.responsebody[?(@.personEmailContact.emailId == $.emailupdaterequest.emailContact.emailId)]
注意 $.emailupdaterequest.emailContact.emailId
。
$
表示路径是从 JSON 的根计算的,而 @
表示路径是在处理器迭代数组时从当前项计算的。