如何从多维JSON数组中提取LABEL为TitleOne的ID和Address1?
问题分析与解决方案
你的代码存在几个关键问题:
- JSON语法错误:第二个子数组中
"Total": "17490"后缺少逗号,会导致JSON解析失败。 - 数组层级访问错误:
data[0]是子数组而非对象,不能直接用.LABEL访问,需定位到子数组内的第一个对象,即data[0][0].LABEL。 - 字段位置与语法错误:ID和Address1存储在子数组的第二个对象中,应使用
data[0][1].ID,且你写的data.[0].ID多了一个多余的点,属于语法错误。 - 硬编码索引局限性:仅判断
data[0]会遗漏目标LABEL在其他子数组的情况,建议遍历所有子数组实现通用查找。
修正后的代码示例
第一步:修复JSON语法错误
var data = [ [ { "LABEL": "TitleOne" }, { "ID": "204", "Address1": "123 main st" } ], [ { "LABEL": "TitleTwo" }, { "Total": "17490", "DaysDisplay": "5.0 days" } ] ];
第二步:通用查找逻辑(遍历所有子数组)
// 遍历每个子数组 for (const subArr of data) { // 检查子数组第一个对象的LABEL值 if (subArr[0].LABEL === 'TitleOne') { // 提取第二个对象中的目标字段 const { ID, Address1 } = subArr[1]; console.log('ID:', ID); console.log('Address1:', Address1); // 找到目标后退出循环,避免无效遍历 break; } }
针对第一个子数组的简化写法
if (data[0][0].LABEL === 'TitleOne') { console.log(data[0][1].ID); console.log(data[0][1].Address1); }
内容的提问来源于stack exchange,提问作者Shanice Morgan
相关产品推荐
相关产品推荐

