从PHP传递到jQuery的JSON数据中提取水果键与值的问题
解决提取JSON嵌套对象中水果名称与对应值的问题
嘿,我懂你的困惑啦!你之前直接对整个Jsondata对象调用Object.keys()和Object.values(),但水果的键值对其实是嵌套在Jsondata.data这个子对象里的,所以得把操作目标指向这个子对象才行~
正确的提取方法
直接针对Jsondata.data进行操作就能拿到你想要的结果:
var Jsondata = { "code": 1, "data": { "orange": 0, "apple": 1, "banana": 2, "mango": 0 }, "msg": "Success" }; // 获取所有水果名称 var fruitNames = Object.keys(Jsondata.data); // 获取所有水果对应的值 var fruitValues = Object.values(Jsondata.data); console.log(fruitNames); // 输出: ["orange", "apple", "banana", "mango"] console.log(fruitValues); // 输出: [0, 1, 2, 0]
额外技巧:同时遍历名称和值
如果想直接把水果名称和对应值配对处理,可以用Object.entries(),它会返回包含键值对的数组:
// 遍历并打印每个水果的名称和值 Object.entries(Jsondata.data).forEach(([fruitName, fruitValue]) => { console.log(`水果:${fruitName},对应值:${fruitValue}`); });
为什么之前的方法失败?
你之前调用Object.keys(Jsondata)时,拿到的是外层对象的键:["code", "data", "msg"],这显然不是你要的水果名称。所以一定要定位到嵌套的data子对象再进行操作哦!
内容的提问来源于stack exchange,提问作者c319113
相关产品推荐
相关产品推荐

