如何使用JavaScript提取JSON响应中的水果计数并存储变量?
解决方法
你的代码返回undefined是因为解析后的JSON是对象而非数组,对象无法通过数字索引(比如obj[0])访问,必须通过键名(如apple、orange)来获取对应值。以下是两种常见的实现方式:
1. 单独获取每种水果的计数
直接通过对象的键名和子属性提取数值并存储到变量:
const obj = JSON.parse(txt); // 存储各水果计数到变量 const appleCount = obj.apple.count; const orangeCount = obj.orange.messageCount; const bananaCount = obj.banana.messageCount; const grapesCount = obj.grapes.messageCount; // 示例:在页面展示结果 document.getElementById("demo").innerHTML = ` 苹果:${appleCount}<br> 橙子:${orangeCount}<br> 香蕉:${bananaCount}<br> 葡萄:${grapesCount} `;
2. 批量遍历所有水果的计数
如果水果数量较多,可通过遍历对象的键值对批量提取计数,统一存储到新对象中:
const obj = JSON.parse(txt); const fruitCounts = {}; // 遍历所有水果的键值对 for (const [fruitName, fruitData] of Object.entries(obj)) { // 兼容"count"和"messageCount"两种属性名 const count = fruitData.count ?? fruitData.messageCount; fruitCounts[fruitName] = count; } // 现在fruitCounts包含所有水果的计数:{apple:4, orange:3, banana:2, grapes:5} // 示例:在页面展示结构化结果 document.getElementById("demo").innerHTML = JSON.stringify(fruitCounts, null, 2);
内容的提问来源于stack exchange,提问作者developer new
相关产品推荐
相关产品推荐

