【发布时间】:2020-05-26 10:03:25
【问题描述】:
我有这个骨架 JSON 文件,我需要使用 JSONPath 使用externalids.system=='HQ2' 进行过滤。我也在使用Goessner。
{
"meta": {
"numFound": 2
},
"data": [
{
"id": "11111",
"type": "PRODUCT_GROUP",
"values": [
{
"showvalues": [
"ObjectPosition"
],
"value": "4",
"attributeid": "gd4d20ffc-0374-4764-8b01-19b2e3d9d084"
}
],
"_links": [
{
"rel": "self"
}
],
"externalids": [
{
"system": "HQ1"
}
]
},
{
"id": "22222",
"type": "PRODUCT_GROUP",
"values": [
{
"showvalues": [
"ObjectPosition"
],
"value": "4",
"attributeid": "gd4d20ffc-0374-4764-8b01-19b2e3d9d084"
}
],
"_links": [
{
"rel": "self"
}
],
"externalids": [
{
"system": "HQ2"
}
]
}
]
}
有人可以帮助我为什么这不起作用吗?
$.data[?(@.externalids[?(@.system == 'HQ2')])].values
基本上,我需要所有externalids.system=='HQ2' 中的values。
【问题讨论】:
-
似乎 JSONPath(所有版本)不接受嵌套/多个条件/谓词。如果您可以使用 JSONPath Plus,您就可以足够接近您的需求。