如何使用JsonPath从指定JSON结构中仅提取所需的id字段值
可实现需求的JsonPath写法
$[*].options[*].id
执行后会得到数组结果 ["SS111", "SS222"],按你的输出要求对结果做简单的字符串拼接即可得到目标格式。
路径语法说明
$:代表JSON的根节点,你的示例数据根节点是数组结构,因此后续跟[*]匹配数组内所有元素[*]:通配符,匹配当前层级下的所有数组元素,此处首先匹配根数组内的2个外层对象.options[*]:匹配每个外层对象下options数组内的所有子元素.id:提取每个options子元素下的id字段值
JsonPath核心使用要点
- 路径层级统一用
.分隔,所有路径必须以根节点标识$开头 - 数组元素可通过
[下标]选取指定位置元素,[*]代表选取数组全部元素 - 如需递归查找所有层级下的指定字段可以用
..,本需求也可简化写为$..id,但该写法不推荐:如果JSON其他层级也存在id字段会出现误匹配,优先使用层级明确的精准路径 - 如需按条件筛选数据,可在
[]内写入过滤表达式,例如筛选价格大于50000的id可写为$[*].options[?(@.price > 50000)].id,其中@代表当前正在匹配的节点对象
内容的提问来源于stack exchange,提问作者testaaa
相关产品推荐
相关产品推荐

