如何读取含方括号JSON中id为10的player_online字段值?
嘿,我懂你遇到的困扰啦——JSON里嵌套了数组(就是那些方括号包裹的内容)确实容易让人犯迷糊,但别慌,咱们一步步来搞定提取id为10对应的player_online值这件事!
首先,先假设你的JSON结构大概是这样的(这是这类场景最常见的情况):
{ "some_parent_key": [ {"id": 5, "player_online": 23}, {"id": 10, "player_online": 47}, {"id": 15, "player_online": 12} ] }
简单说就是某个字段对应一个数组,数组里的每一项都是包含id和player_online的对象。下面给你两种常用语言的实现方法:
Python 提取方法
- 先用
json模块解析JSON数据,再遍历数组找到目标项:
import json # 把你的JSON数据放到这里(可以是字符串,也可以从文件读取) json_str = ''' { "servers": [ {"id": 5, "player_online": 23}, {"id": 10, "player_online": 47}, {"id": 15, "player_online": 12} ] } ''' # 解析JSON为Python字典 data = json.loads(json_str) # 遍历数组,找到id=10的对象并提取player_online for item in data['servers']: if item['id'] == 10: target_value = item['player_online'] print(target_value) # 会输出47 break # 找到就停止遍历,提高效率
- 嫌遍历麻烦?可以用更简洁的生成器表达式:
target_value = next(item['player_online'] for item in data['servers'] if item['id'] == 10)
JavaScript 提取方法
不管是浏览器环境还是Node.js,都可以用数组的find方法快速定位:
// 假设已经把JSON解析成了JavaScript对象 const data = { "servers": [ {"id": 5, "player_online": 23}, {"id": 10, "player_online": 47}, {"id": 15, "player_online": 12} ] }; // 找到id为10的对象 const targetItem = data.servers.find(item => item.id === 10); // 确保找到后再取值,避免报错 if (targetItem) { console.log(targetItem.player_online); // 输出47 }
如果你的JSON数组嵌套得更深(比如多层方括号),思路也是一样的:逐层进入对应的数组,遍历找到匹配id的对象,再提取player_online字段就好啦!
内容的提问来源于stack exchange,提问作者Dekirai
相关产品推荐
相关产品推荐

