如何使用 JSONPath 在字符串数组中查找值?
How to find value in string array using JSONPath?
我正在尝试过滤 hasContent 属性 为真且 legalStatutes 字符串数组包含带有 'AIA' 的字符串的 formParagraph 对象列表。问题是 'AIA' 并不总是在数组中的零位置。
以下 JSON 路径仅在 'AIA' 是数组中的第一项时有效。
$.businessResponse.formParagraphList[ ? ((@.hasContent == true) && (@.legalStatutes[0] == 'AIA'))] {
"rbacUser": null,
"businessResponse": {
"formParagraphList": [{
"id": 1261,
"hasContent": true,
"legalStatutes": [
"Pre_AIA",
"AIA"
]
},
{
"id": 67,
"hasContent": true,
"legalStatutes": [
"AIA",
"Pre_AIA"
]
},
{
"id": 68,
"hasContent": true,
"legalStatutes": [
"Pre_AIA"
]
}
]
}
}
有没有一种方法可以在 JSON 对象的字符串数组中检查特定字符串是否存在,而无需使用 JSONPath 来检查它的索引?
好的,找到了解决我的问题的方法。使用 .indexOf()
方法检查字符串是否存在于数组中。
$.businessResponse.formParagraphList[?((@.hasContent==true) && (@.legalStatutes.indexOf('AIA') > -1))]
更新:
上面的 JSONPath 在在线评估器中有效,但在 Newtonsoft for C# 中不起作用。这是我使用这个库所得到的。
$.businessResponse.formParagraphList[?(@.hasExaminerNote==true && @.legalStatutes[*]=='Pre_AIA')]
我正在尝试过滤 hasContent 属性 为真且 legalStatutes 字符串数组包含带有 'AIA' 的字符串的 formParagraph 对象列表。问题是 'AIA' 并不总是在数组中的零位置。
以下 JSON 路径仅在 'AIA' 是数组中的第一项时有效。
$.businessResponse.formParagraphList[ ? ((@.hasContent == true) && (@.legalStatutes[0] == 'AIA'))] {
"rbacUser": null,
"businessResponse": {
"formParagraphList": [{
"id": 1261,
"hasContent": true,
"legalStatutes": [
"Pre_AIA",
"AIA"
]
},
{
"id": 67,
"hasContent": true,
"legalStatutes": [
"AIA",
"Pre_AIA"
]
},
{
"id": 68,
"hasContent": true,
"legalStatutes": [
"Pre_AIA"
]
}
]
}
}
有没有一种方法可以在 JSON 对象的字符串数组中检查特定字符串是否存在,而无需使用 JSONPath 来检查它的索引?
好的,找到了解决我的问题的方法。使用 .indexOf()
方法检查字符串是否存在于数组中。
$.businessResponse.formParagraphList[?((@.hasContent==true) && (@.legalStatutes.indexOf('AIA') > -1))]
更新: 上面的 JSONPath 在在线评估器中有效,但在 Newtonsoft for C# 中不起作用。这是我使用这个库所得到的。
$.businessResponse.formParagraphList[?(@.hasExaminerNote==true && @.legalStatutes[*]=='Pre_AIA')]