如何使用JSONPath从指定JSON中选取Id字段及doNotContact嵌套数组?
正确的JSONPath筛选方案
针对你提供的JSON结构,要获取id为47的联系人的id字段和doNotContact数组内容,可使用以下两种JSONPath表达式:
1. 精准定位已知键名的场景
因为contacts下的键直接是"47",可以直接指定键名来获取目标字段:
$.contacts['47']['id', 'doNotContact']
该表达式会直接返回contacts下键为47的对象中的id和doNotContact内容。
2. 动态筛选id值为47的场景
如果contacts下包含多个联系人对象,需要动态匹配id值等于47的项,可使用过滤器表达式:
$.contacts.*[?(@.id == 47)]['id', 'doNotContact']
这里*匹配contacts下的所有子对象,[?(@.id == 47)]筛选出id字段值为47的对象,最后选取目标字段。
执行结果示例
使用上述任一表达式,针对你提供的JSON,返回结果为:
{ "id": 47, "doNotContact": [ { "id": 2, "reason": 2, "comments": "", "channel": "email", "channelId": null } ] }
内容的提问来源于stack exchange,提问作者Marijn
相关产品推荐
相关产品推荐

