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

标签 javascript jquery

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

这是示例对象

{  
"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。

如何获取关卡内部的键值?比如“甜点”、“果汁和饮料”、...

最佳答案

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

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

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

example

关于javascript - 从内部级别获取 JSON 对象的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27741628/

相关文章:

javascript - Node.js : Why can't I output the create value in function()

javascript - 如何将数据(id)与 JavaScript 链接关联起来?

c# - 如何在文本框中键入内容时触发文本框 textchanged 事件

javascript - Firefox 在输入数据以形成时滚动到页面顶部

javascript - three.js 浏览器中的实时代码编辑器

javascript - 特定函数的引用错误

javascript - jQuery:计算多个元素的子元素并计算

jquery - 向上滚动和向下滚动事件

javascript - 使用 HTML 创建留言簿应用程序,并在输入字段中添加一些条件

javascript - 多个父节点在 Internet Explorer 7 中不起作用