无法从JSON获取键值

时间:2018-07-17 07:28:44

标签: javascript jquery json

我无法从json对象下面获取键和值,并且出现如下所述的错误。

编辑: 我需要动态查找键(在本例中为“天”和“计数”),然后根据映射这些键获取值。

我已经尝试过:

// json is the json object
var columns = Object.keys($.parseJSON(json)[0]);                       
//var columns = Object.keys($.parseJSON(json)["Table"]);    
var result = JSON.parse(json).map(function (o) {
    return columns.map(function (key) {
        return o[key];
    });
});

JSON对象:

"{
  "Table": [
    {
      "Day": "Jun 18",
      "Counts": 3
    },
    {
      "Day": "Jun 19",
      "Counts": 5
    },
    {
      "Day": "Jun 20",
      "Counts": 8
    },
    {
      "Day": "Jun 21",
      "Counts": 15
    }]
}"
  

无法将未定义或null转换为对象

2 个答案:

答案 0 :(得分:2)

基于您的json,代码应该像这样

var columns = Object.keys($.parseJSON(json).Table[0]);                       
var result = JSON.parse(json).Table.map(function (o) {
    return columns.map(function (key) {
        return o[key];
    });
});

答案 1 :(得分:0)

只需两行

 
    
 

    const test = (json) => {
              const obj = JSON.parse(json);
              const keys = Object.keys(obj.Table[0]);
              const values = obj.Table.map(row=>_.values(row));
              return {keys, values}
            }
    
    

输出

    
 

    const test = (json) => {
              const obj = JSON.parse(json);
              const keys = Object.keys(obj.Table[0]);
              const values = obj.Table.map(row=>_.values(row));
              return {keys, values}
            }