You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android环境下无法提取JSON数组元素的技术求助

提取嵌套JSON数组元素的解决方案

嘿,我来帮你搞定这个JSON数组提取的问题!先理清楚你给的JSON结构:它外层是一个对象,"Sample JSON"字段对应一个数组,每个数组元素包含Title和Audit数组,而Audit里的每一项又有answer数组。下面用两种常用语言给你演示具体的提取方法:

JavaScript 提取示例

先把JSON字符串解析成可操作的对象,再逐层访问目标数组:

// 假设你的JSON字符串存储在这个变量中
const jsonStr = `{ "Sample JSON": [{ "Title": "Title1", "Audit": [{ "auditId": "01", "type": "sampleType", "auditText": "sampleText", "answer": ["Ans1", "Ans2"] }, { "auditId": "02", "type": "sampleType2", "auditText": "sampleText2", "answer": ["Ans1", "Ans2", "Ans3", "Ans4"] } ] }, { "Title": "Title2", "Audit": [{ "auditId": "03", "type": "sampleType3", "auditText": "sampleText3", "answer": ["Ans1", "Ans..."] }] }]}`;

// 解析JSON为JavaScript对象
const data = JSON.parse(jsonStr);

// 提取外层的"Sample JSON"数组
const sampleJsonArray = data["Sample JSON"];
console.log("外层Sample JSON数组:", sampleJsonArray);

// 提取Title1对应的Audit数组
const title1Audit = sampleJsonArray[0].Audit;
console.log("Title1的Audit数组:", title1Audit);

// 提取第一个Audit项的answer数组
const firstAnswer = title1Audit[0].answer;
console.log("Audit ID 01的answer数组:", firstAnswer);

// 遍历所有answer数组
sampleJsonArray.forEach(titleItem => {
  titleItem.Audit.forEach(auditItem => {
    console.log(`Audit ID ${auditItem.auditId}的answer数组:`, auditItem.answer);
  });
});

Python 提取示例

借助json模块解析后,通过字典和列表的索引逐层获取目标内容:

import json

# 你的JSON字符串
json_str = '''{ "Sample JSON": [{ "Title": "Title1", "Audit": [{ "auditId": "01", "type": "sampleType", "auditText": "sampleText", "answer": ["Ans1", "Ans2"] }, { "auditId": "02", "type": "sampleType2", "auditText": "sampleText2", "answer": ["Ans1", "Ans2", "Ans3", "Ans4"] } ] }, { "Title": "Title2", "Audit": [{ "auditId": "03", "type": "sampleType3", "auditText": "sampleText3", "answer": ["Ans1", "Ans..."] }] }]}'''

# 解析JSON为Python字典
data = json.loads(json_str)

# 提取外层"Sample JSON"数组
sample_json_array = data["Sample JSON"]
print("外层Sample JSON数组:", sample_json_array)

# 提取Title2对应的Audit数组
title2_audit = sample_json_array[1]["Audit"]
print("Title2的Audit数组:", title2_audit)

# 遍历所有answer数组并打印
for title_item in sample_json_array:
    for audit_item in title_item["Audit"]:
        print(f"Audit ID {audit_item['auditId']}的answer数组:", audit_item["answer"])

关键注意点

  • JSON的键名区分大小写,比如"Sample JSON"不能写成"sample json",否则会找不到对应内容;
  • 嵌套数组需要通过索引(比如[0]表示第一个元素)逐层访问,不要跳过中间的嵌套层级;
  • 确保JSON格式是合法的(你提供的这段JSON是合法的,要是之前提取失败可以检查自己的解析代码有没有拼写错误)。

内容的提问来源于stack exchange,提问作者user7735493

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:35:47