将JSON键解析为字符串数组

时间:2018-06-26 17:23:55

标签: javascript json

我目前正在尝试处理GET请求,该请求返回的application / json结构如下:

{
    "items": {
        "item001": {"id":1234, "name": "name001"},
        "item002": {"id":1235, "name": "name002"},
        "item003": {"id":1236, "name": "name003"}
      }
}

我正在尝试获取一个类似于

的字符串数组
array = ["item001", "item002", "item003"];

我不在乎任何底层层次结构,只需要将每个对象的键作为数组即可。我尝试了几种不同的方法(map(),JSON.stringify()等),但似乎无法以array [i]格式索引每个键。

事实上,例如,每次我尝试打印单个键的名称时,

var obj = JSON.parse({'whole json here'});
print(obj.items[1]);

我收到一个[object Object]错误,这很有意义,因为obj.items未使用除“ item001”以外的其他键进行索引。但是,我不知道每个对象的键是什么,因此需要一组键。先感谢您!

3 个答案:

答案 0 :(得分:0)

您可以执行Object.keys。它将返回对象键的数组

var x = {
  "items": {
    "item001": {
      "id": 1234,
      "name": "name001"
    },
    "item002": {
      "id": 1235,
      "name": "name002"
    },
    "item003": {
      "id": 1236,
      "name": "name003"
    }
  }
}

var y = Object.keys(x.items);

console.log(y)

答案 1 :(得分:0)

您可以使用Object.keys()。对于Reference

var obj={"items":{"item001":{"id":1234,"name":"name001"},"item002":{"id":1235,"name":"name002"},"item003":{"id":1236,"name":"name003"}}};
    
 var result = Object.keys(obj.items);
 
 console.log(result);

答案 2 :(得分:0)

Object.keys将做到这一点。

var obj = JSON.parse({'your json'});
console.log( Object.keys(obj.items) );