JSONPath无法过滤指定值求助:需获取特定国家对应值
JSONPath按指定国家取值的通用解决方案
由于缺少目标JSON的具体结构,先提供几种常见场景的示例,你可以根据实际结构调整:
场景1:数组元素为含国家字段的对象
假设JSON结构如下:
[ {"country": "美国", "value": "USA-123"}, {"country": "加拿大", "value": "CAN-456"}, {"country": "英国", "value": "UK-789"} ]
对应的JSONPath表达式:
- 获取美国的
value:$[?(@.country == '美国')].value - 获取加拿大的
value:$[?(@.country == '加拿大')].value
场景2:国家作为键名的嵌套对象
假设JSON结构如下:
{ "countries": { "美国": {"code": "US", "population": 331000000}, "加拿大": {"code": "CA", "population": 38000000}, "墨西哥": {"code": "MX", "population": 126000000} } }
对应的JSONPath表达式:
- 获取美国的
code:$.countries['美国'].code - 获取加拿大的
population:$.countries['加拿大'].population
关键注意点
- 确认使用的JSONPath工具支持过滤语法(部分轻量库不兼容
[?()]表达式) - 字符串匹配需严格对应大小写,比如
'美国'和'USA'会被视为不同匹配目标 - 若你的JSON结构更复杂,补充完整结构后可生成更精准的表达式
内容的提问来源于stack exchange,提问作者Adil Raza
相关产品推荐
相关产品推荐

