如何用|拼接JSON中NPC数据字段?排除isEnabled且块间不合并
将JSON中NPC数据转换为指定分隔格式的方法
可以通过遍历JSON中的每个NPC数据块,提取排除isEnabled后的指定字段值,再用|拼接成目标格式。以下是两种常用编程语言的实现示例:
JavaScript实现
// 解析后的NPC JSON数据 const npcData = { "100_npc": { "uniqueId": 9000234, "username": "Test NPC", "itemsObj": {"colour": 0, "head": 0, "face": 0, "body": 0, "neck": 0, "hand": 0, "feet": 0, "flag": 0, "photo": 0}, "isEnabled": true }, "101_npc": { "uniqueId": 9000251, "username": "Pelican", "itemsObj": {"colour": 0, "head": 0, "face": 0, "body": 0, "neck": 0, "hand": 0, "feet": 0, "flag": 0, "photo": 0}, "isEnabled": true } }; // 生成目标格式字符串数组 const formattedNPCs = Object.values(npcData).map(npc => { const values = [ npc.uniqueId, npc.username, ...Object.values(npc.itemsObj) ]; return values.join('|') + '|'; }); // 输出每个NPC的结果(不同NPC单独一行) console.log(formattedNPCs.join('\n'));
运行后输出:
9000234|Test NPC|0|0|0|0|0|0|0|0|0| 9000251|Pelican|0|0|0|0|0|0|0|0|0|
Python实现
# 解析后的NPC JSON数据 npc_data = { "100_npc": { "uniqueId": 9000234, "username": "Test NPC", "itemsObj": {"colour": 0, "head": 0, "face": 0, "body": 0, "neck": 0, "hand": 0, "feet": 0, "flag": 0, "photo": 0}, "isEnabled": True }, "101_npc": { "uniqueId": 9000251, "username": "Pelican", "itemsObj": {"colour": 0, "head": 0, "face": 0, "body": 0, "neck": 0, "hand": 0, "feet": 0, "flag": 0, "photo": 0}, "isEnabled": True } } formatted_npcs = [] for npc in npc_data.values(): # 收集需要的字段值并转为字符串 values = [ str(npc["uniqueId"]), npc["username"], *[str(v) for v in npc["itemsObj"].values()] ] # 拼接成目标格式 formatted_line = '|'.join(values) + '|' formatted_npcs.append(formatted_line) # 打印结果 print('\n'.join(formatted_npcs))
核心逻辑说明:
- 遍历所有NPC数据块,自动跳过
isEnabled字段 - 按顺序提取
uniqueId、username,以及itemsObj中的所有属性值 - 用
|拼接所有值,末尾额外添加一个|匹配示例格式 - 每个NPC的结果独立保存,不会合并
内容的提问来源于stack exchange,提问作者Zesty
相关产品推荐
相关产品推荐

