如何使用JSONPath获取对象中首个子节点的inner_data数组?
正确的JSONPath查询方案
你需要的是一个能把所有inner_data数组里的元素扁平化合并成单个数组的表达式,直接用这个就行:
$..inner_data[*]
效果说明
这个表达式会递归遍历整个JSON结构,找到所有inner_data数组,然后把每个数组里的所有元素都提取出来,合并成一个结果数组,最终输出就是你想要的:
[ { "wanted_data": "something1", "other_data": 1000 }, { "wanted_data": "something2", "other_data": 1001 }, { "wanted_data": "something1", "other_data": 1000 }, { "wanted_data": "something2", "other_data": 1001 } ]
为啥之前的尝试没达到预期?
$..inner_data返回的是两个独立的数组,不是你需要的合并后的元素列表;$..inner_data[0]仅提取每个inner_data数组的第一个元素,丢失了其余内容。
而$..inner_data[*]通过[*]操作符遍历每个inner_data数组的所有元素,一步完成扁平化合并,完美匹配你的需求。
内容的提问来源于stack exchange,提问作者Alban
相关产品推荐
相关产品推荐

