如何使用JSONPath获取数组中首个满足条件的元素?
JSONPath 获取首个符合条件的元素
给定JSON结构:
{ "phoneNumbers": [ { "type" : "iPhone", "number": "0000-0000-0000" }, { "type" : "home", "number": "1111-1111-1111" }, { "type" : "home", "number": "2222-2222-2222" } ] }
使用表达式 $.phoneNumbers[?(@.type=="home")].number 会返回所有符合type=="home"的号码数组:
[ "1111-1111-1111", "2222-2222-2222" ]
若要获取仅包含首个符合条件元素的数组,可使用带切片的JSONPath表达式:
$.phoneNumbers[?(@.type=="home")][0:1].number
执行后返回结果:
[ "1111-1111-1111" ]
表达式说明
$.phoneNumbers[?(@.type=="home")]:筛选出所有type为home的对象[0:1]:对筛选后的数组做切片操作,仅保留索引为0的第一个元素(切片规则为左闭右开).number:提取该对象的number字段,最终得到包含单个目标元素的数组
内容的提问来源于stack exchange,提问作者Mig82
相关产品推荐
相关产品推荐

