如何用JSONPath从JSON数据中区分提取人名与公司名
如何用JSONPath区分提取人名和公司名?
针对jsonplaceholder的用户数据结构,你可以通过指定精确路径来分别提取人名和公司名,避免用$..name这种全局匹配的表达式:
提取人名(每个用户的顶级
name字段):
使用表达式$.[*].name
这个表达式会遍历根数组下的每一个用户对象,直接取其第一层的name属性,不会触及company子对象里的name。提取公司名(每个用户
company字段下的name):
使用表达式$.[*].company.name
这个表达式明确指定要取每个用户对象中company子对象的name属性,精准定位到公司名称。
如果想更灵活地过滤(比如面对更复杂的嵌套结构),也可以用父节点判断来筛选:
- 提取人名的过滤写法:
$..name[?(!@parent.company)]
意思是找到所有name字段,且它的父节点不是company对象,这样就能排除公司名。
你可以直接在jsonpath.com里测试这些表达式,输入jsonplaceholder的/users接口数据就能看到效果。
内容的提问来源于stack exchange,提问作者alhambra
相关产品推荐
相关产品推荐

