Java中如何以通用方式从嵌套JSON对象中取值
通用方式提取JSON中的Column、Tag和Status值
原始JSON结构
[ { "HoldTag": { "Employee": { "Column": "0", "Tags": [ { "Tag": "2345" } ], "Status": "3" }, "Flag": "true" } } ]
通用提取逻辑
- 定位到JSON数组的第一个元素(整个数据由数组包裹)
- 逐层进入嵌套对象:
HoldTag->Employee - 直接提取
Column和Status字段值 - 遍历
Tags数组,提取每个子对象里的Tag字段值
常见语言实现示例
Python示例
import json # 解析JSON字符串 json_str = ''' [ { "HoldTag": { "Employee": { "Column": "0", "Tags": [ { "Tag": "2345" } ], "Status": "3" }, "Flag": "true" } } ] ''' data = json.loads(json_str) # 提取目标字段 employee_info = data[0]["HoldTag"]["Employee"] column_value = employee_info["Column"] status_value = employee_info["Status"] tag_values = [tag_item["Tag"] for tag_item in employee_info["Tags"]] # 输出结果 print(f"Column: {column_value}") print(f"Status: {status_value}") print(f"Tags: {tag_values}")
JavaScript示例
const jsonStr = `[ { "HoldTag": { "Employee": { "Column": "0", "Tags": [ { "Tag": "2345" } ], "Status": "3" }, "Flag": "true" } } ]`; // 解析JSON const data = JSON.parse(jsonStr); // 提取目标字段 const employeeInfo = data[0].HoldTag.Employee; const columnValue = employeeInfo.Column; const statusValue = employeeInfo.Status; const tagValues = employeeInfo.Tags.map(item => item.Tag); // 输出结果 console.log(`Column: ${columnValue}`); console.log(`Status: ${statusValue}`); console.log(`Tags: ${tagValues}`);
健壮性优化提示
- 可以加入字段存在性判断,避免因字段缺失导致报错:
- Python中使用
employee_info.get("Column", "默认值")替代直接索引 - JavaScript中使用可选链操作符
employeeInfo?.Column
- Python中使用
内容的提问来源于stack exchange,提问作者Poonam Vaidya
相关产品推荐
相关产品推荐

