不确定字段所属数组下标时如何在动态结构JSON中查找目标字段
解决方案
通用逻辑
- 先定位到JSON中
person下对应指定人名的数组对象 - 遍历该数组的所有元素
- 逐个检查当前元素是否包含
weaknesses属性,匹配到后直接返回该属性值即可,你也可以把weaknesses替换为powers等其他你需要查找的字段名
具体实现示例
Python 实现
import json def get_target_field(data, person_name, target_field="weaknesses"): person_arr = data["person"][person_name] for item in person_arr: if target_field in item: return item[target_field] # 调用示例 with open("你的JSON文件路径.json", "r", encoding="utf-8") as f: data = json.load(f) # 查找Peter的weaknesses print(get_target_field(data, "Peter"))
JavaScript 实现
function getTargetField(data, personName, targetField = "weaknesses") { const personArr = data.person[personName]; for (const item of personArr) { if (item.hasOwnProperty(targetField)) { return item[targetField]; } } } // 调用示例 // 查找Clark的weaknesses console.log(getTargetField(data, "Clark"))
jq 命令行实现
如果你需要在命令行直接处理JSON文件,可以使用jq快速查询:
# 查找Bruce的weaknesses jq '.person.Bruce[] | select(has("weaknesses")) | .weaknesses' 你的JSON文件路径.json
内容的提问来源于stack exchange,提问作者thinguy
相关产品推荐
相关产品推荐

