循环访问没有数组的 JSON 密钥对象

Looping over JSON key objects that doesn't have array

本文关键字:JSON 密钥 密钥对 对象 数组 访问 循环      更新时间:2023-09-26

我有以下JSON:

basket = {
    "Items": 3,
    "Item": {
          "iPhone 6": {
              "productId": 227,
         "url": "http://example.com/iphone6",
         "price": 299.99
           },
          "Solio Mono Solar Charger": {
          "productId": 655,
          "url": "http://website.com/solio_charger.html",
          "price": 29.95
           },
           "24 Month Warranty Package": {
             "productId": 681,
          "url": "http://website.com/24_month_warranty.html",
          "price": 129.95
           }
      },
    "Total": 459.89
}

我想遍历 basket['Item'] 中的对象,但 JSON 本身并没有提供数组来执行此操作,循环遍历 basket['item'] 中的对象的最佳方法是什么?

您可以使用 Object.keys() 获取对象的所有属性名称,然后使用 Array.prototype.forEach() 对其进行迭代:

 Object.keys(basket.Item).forEach(function(key) {
      console.log(item);
      console.log(basket.Item[key]);
 });
您可以使用

for...in

var obj = {
  cat: 'meow',
  dog: 'woof'
}
for (attr in obj) {
  console.log(attr + ': ' + obj[attr])
}

这将适当地记录:

cat: meow
dog: woof

下面是对象的 JSFiddle。

您也可以使用 Object.keys(),但它仅在 IE>= 9 中受支持。

您可以使用

for in

for (var property in basket['Item']) {
    var value = basket['Item'][property];
    console.log(property + ':');
    console.dir(value);
}