从内部级别获取 JSON 个对象的键

Get keys of JSON object from inner levels

我在获取对象内部级别的键值时遇到问题。

这是示例对象

{  
"dataset":{  
  "Categories":[  
     {  
        "Desserts":[  
           "Sweets",
           "Ice Creams",
           "Pastry",
           "Moose",
           "Jelly",
           "Donut",
           "Custard",
           "Puddings",
           "Cookies",
           "Pies"
        ]
     },
     {  
        "Juices and Beverages":[  
           "Cold",
           "Hot",
           "Fresh",
           "Mocktail",
           "Sodas"
        ]
     },
     {  
        "Indian Breads":[  
           "Plain",
           "Stuffed"
        ]
     },
     {  
        "Salads":[  
           "Green",
           "Vegetable",
           "Fruit"
        ]
     },
     {  
        "Soups":[  
           "Clear",
           "Thick"
        ]
     }
  ]
  }
 }

我尝试在外层交互对象。

for(var k in dataset.Categories)
    categories.push(k);

但我得到的结果是 0,1,2,3,4。

如何获取关卡中的键值?喜欢"Desserts","Juices and Beverages",....

Categories 是一个数组,因此如果您在其上使用 for..in,您将获得的值是数组索引。

要获取您想要的值,您可以使用:

var categoryNames = dataset.Categories.map(function (item) {
    return Object.keys(item)[0];
});

example

您正在插入索引而不是值。代码未经测试,但应该可以工作。

for(var k in dataset.Categories)
categories.push(dataset.Categories[k]);