如何访问含嵌套数组的JSON对象中的blue值?
访问JSON中blue对应内容的操作方法
首先你给出的JSON结构如下:
{ "blue": [ { "name": "Jim", "color": "blue", "age": 22 }, { "name": "Sam", "color": "blue", "age": 33 } ], "green": [ { "name": "Eddie", "color": "green", "age": 77 } ] }
下面是几种主流编程语言的具体访问方式:
JavaScript
先把JSON字符串解析为JS对象,再直接通过键名访问:
// 假设JSON字符串存储在jsonStr变量中 const data = JSON.parse(jsonStr); // 获取blue对应的数组 const blueList = data.blue; // 遍历数组里的每个对象 blueList.forEach(item => { console.log(`姓名:${item.name},年龄:${item.age}`); });
如果是已经解析好的JS对象,直接用data.blue就能拿到目标内容。
Python
使用json模块解析字符串,通过字典键索引访问:
import json # 假设JSON字符串存储在json_str变量中 data = json.loads(json_str) # 获取blue对应的列表 blue_list = data['blue'] # 遍历输出每个元素的属性 for item in blue_list: print(f"姓名:{item['name']},年龄:{item['age']}")
如果想避免键不存在的报错,也可以用data.get('blue')来访问。
Java
以Jackson库为例,解析后通过Map的键获取对应内容:
import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; import java.util.Map; public class JsonAccessDemo { public static void main(String[] args) throws Exception { String jsonStr = "{\"blue\":[{\"name\":\"Jim\",\"color\":\"blue\",\"age\":22},{\"name\":\"Sam\",\"color\":\"blue\",\"age\":33}],\"green\":[{\"name\":\"Eddie\",\"color\":\"green\",\"age\":77}]}"; ObjectMapper mapper = new ObjectMapper(); // 解析为Map对象 Map<String, Object> data = mapper.readValue(jsonStr, Map.class); // 获取blue对应的列表 List<Map<String, Object>> blueList = (List<Map<String, Object>>) data.get("blue"); // 遍历输出 for (Map<String, Object> item : blueList) { System.out.println("姓名:" + item.get("name") + ",年龄:" + item.get("age")); } } }
核心逻辑
不管用哪种语言,核心步骤都是:
- 将JSON字符串解析为对应语言的可操作对象(字典、Map、自定义类实例等)
- 通过键名
blue直接访问对应的数组/列表 - 按需遍历数组,访问里面每个对象的具体属性
内容的提问来源于stack exchange,提问作者Hussein Alhassan
相关产品推荐
相关产品推荐

