如何在json中为现有值对添加名称

时间:2017-09-01 11:25:40

标签: javascript jquery json html-table

您好,这是我的样本json:

 {
  "2016-01-01T00:00:00Z": 1,
  "2016-02-01T00:00:00Z": 2,
  "2016-03-01T00:00:00Z": 3
}

现在我想要像

这样的东西
[
  {"Month":"2016-01-01T00:00:00Z", "Number": 1},
  {"Month":"2016-02-01T00:00:00Z", "Number": 2},
  {"Month":"2016-03-01T00:00:00Z", "Number": 3}
]

如何使用JS / Jquery执行此操作?我想把它改成上面提到的格式,因为我需要将它们放在html表格中,我发现使用第二种格式可以让我的工作更轻松。

6 个答案:

答案 0 :(得分:2)

您可以通过以下方式执行此操作

let obj = {
  "2016-01-01T00:00:00Z": 1,
  "2016-02-01T00:00:00Z": 2,
  "2016-03-01T00:00:00Z": 3
};
let result = [];
for(element in obj){
    result.push({"Month":element, "Number": obj[element]})
}

console.log(result);

答案 1 :(得分:1)

您可以使用jQuery map函数来更改数组的格式。

let jsonArray = {
    "2016-01-01T00:00:00Z": 1,
    "2016-02-01T00:00:00Z": 2,
    "2016-03-01T00:00:00Z": 3
};

var result = $.map(jsonArray, function (item, key) {
    return {
        Month: key,
        Number: item
    };
});

答案 2 :(得分:1)

您可以使用Object.keys获取密钥并使用Array#map映射新对象。



var object = { "2016-01-01T00:00:00Z": 1, "2016-02-01T00:00:00Z": 2, "2016-03-01T00:00:00Z": 3 },
    result = Object.keys(object).map(function (k) {
        return { Month: k, Number: object[k] };
    });

console.log(result)

.as-console-wrapper { max-height: 100% !important; top: 0; }




答案 3 :(得分:0)

    var object1 =  {
      "2016-01-01T00:00:00Z": 1,
      "2016-02-01T00:00:00Z": 2,
      "2016-03-01T00:00:00Z": 3
    };

    var finalArray = [];

    for (var key in object1) {
      if (p.hasOwnProperty(key)) {   // p.hasOwnProperty this will check for duplicate key
            finalArray.push({
            “Month” : key,
            “Number”:p[key]
        });
      }
    }

console.log(finalArray)

答案 4 :(得分:0)

另一种选择可能包括使用Object.keysmap这样......

let obj = {
  '2016-01-01T00:00:00Z': 1,
  '2016-02-01T00:00:00Z': 2,
  '2016-03-01T00:00:00Z': 3
}

let arr = Object.keys(obj).map(key => {
    return {'Month': key, 'Number': obj[key]}
});

JSFiddle demo

答案 5 :(得分:0)

使用$.each进行旅行

 a = {
      "2016-01-01T00:00:00Z": 1,
      "2016-02-01T00:00:00Z": 2,
      "2016-03-01T00:00:00Z": 3
    }

var b = []; 
$.each( a, function( key, value ) {
   b.push({mounth: key ,number: value });
});

输出将是:

0:{mounth: "2016-01-01T00:00:00Z", number: 1}
1:{mounth: "2016-02-01T00:00:00Z", number: 2}
2:{mounth: "2016-03-01T00:00:00Z", number: 3}