如何使用Jsonpath查询指定createdTs对应的外层对象及pageName值
JSONPath查询解决方案
1. 获取完整外层对象的表达式
$[?(*.createdTs == '333')]
执行后返回结果和你预期的完全一致:
[ { "Test1":{ "pageName":"Apple" }, "Test1-1":{ "createdTs":"333" } } ]
2. 直接提取对应pageName值的表达式
如果你不需要完整外层对象,只需要拿对应的pageName值,可以用:
$[?(*.createdTs == '333')].*.pageName
执行返回结果:
["Apple"]
原表达式错误原因
- 路径定位层级错误:你写的表达式直接定位到
Test1-1属性层级,匹配成功后只会返回该属性对应的内容,不会回溯到外层父对象 - 类型匹配错误:原数据中
createdTs是字符串类型的'333',你写的数字333在严格匹配规则下会因为类型不一致失效
内容的提问来源于stack exchange,提问作者testaaa
相关产品推荐
相关产品推荐

