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
相关产品推荐
相关产品推荐

