在游戏配置文件中,经常会看到用 JSON 格式存储的数据。比如你下载了一个MOD,解压后发现有个 config.json 文件,里面一堆花括号和方括号,看得人头大。其实搞清楚怎么解析 JSON 数组,这些内容立马就清晰了。
什么是 JSON 数组
JSON 数组就是用中括号 [] 包裹的一组数据,每一项可以是字符串、数字、对象,甚至嵌套其他数组。比如一个游戏角色的技能列表可能长这样:
["火球术", "冰霜打击", "闪电链"]
或者更复杂的带属性的对象数组:
[
{
"name": "战士",
"hp": 1200,
"skills": ["冲锋", "盾击"]
},
{
"name": "法师",
"hp": 600,
"skills": ["火球术", "寒冰箭"]
}
]
用 JavaScript 解析最常见
如果你是在写网页版游戏或使用 Node.js 工具处理配置,JavaScript 的 JSON.parse() 方法是最直接的。假设你从文件读出一串 JSON 字符串:
const jsonString = '[{"name":"弓箭手","level":15}]';
const characters = JSON.parse(jsonString);
console.log(characters[0].name); // 输出:弓箭手
只要格式没错,JSON.parse() 就能把字符串转成可操作的数组,之后就能用 for 循环遍历,或者按索引取值。
Python 里用 json 模块也简单
很多游戏工具脚本用 Python 写,解析起来一样轻松。先导入 json 模块:
import json
with open('config.json', 'r', encoding='utf-8') as f:
data = json.load(f)
for character in data:
print(character['name'])
如果数据是字符串而不是文件,就用 json.loads()(注意带 s):
json_string = '[{"name": "盗贼", "stealth": true}]'
data = json.loads(json_string)
print(data[0]['stealth']) # 输出:True
实际应用场景
比如你想给游戏加个新角色,打开 enemy.json 发现是一堆怪物配置。你只需要照着已有格式,在数组末尾加一项:
{
"name": "暗影狼",
"attack": 80,
"drop_items": ["狼牙", "皮毛", "随机药水"]
}
保存后启动游戏,新怪物就加载进去了。前提是这个数组被正确解析,否则游戏会报错读取失败。
遇到解析失败,多数是逗号多打了、引号没闭合,或者用了中文标点。仔细检查错误提示的行号,一般都能快速定位问题。