如何将JSON密钥转换为值

时间:2016-01-14 15:14:17

标签: javascript arrays json object

我想转换以下格式 JSON:

{
    id1: value1,
    id2: value2
    id3: value3,
    ...
} 

进入

[    
    { id: 'id1', value: 'value1' },
    { id: 'id2', value: 'value2' },
    { id: 'id3', value: 'value3' },
    ...
]

什么会快捷方便? 我们有什么方法可以使用underscore.js。 提前谢谢。

7 个答案:

答案 0 :(得分:3)

您可以使用下划线提供的map方法。

  var input = {
    "id1": "value1",
    "id2": "value2"
  };

  var output = _.map(input, function (value, key) {
    return {id: key, value: value};
  });

答案 1 :(得分:2)

类似的东西:

var arr = Object.keys(obj).map(k => ({id:k, value:obj[k]}));

不需要下划线;-)如果你不使用babel或类似的东西,你可能需要写:

var arr = Object.keys(obj).map(function (k) { return {id:k, value:obj[k]};});

答案 2 :(得分:1)

使用以下内容:

var arr = [];

var obj = {
    id1: "42",
    id2: "hello",
    id3: 6,
}

for (var i in obj) {
    arr.push({id: i, value: obj[i]});
}

可替换地:

Object.keys(obj).map(function(value, index) {
   return {id: value, value: obj[value]}
})

答案 3 :(得分:0)

您应该使用Object.prototype.hasOwnProperty来确保您只添加直接在obj上设置的密钥:

var arr = [];
for (var key in object) {
    if (object.hasOwnProperty(key)) {
        arr.push({ id: key, value: object[value] });
    });
}

答案 4 :(得分:0)

你不能只使用parse

var object = JSON.parse(jsonString);

如果这不能产生预期的结果,那么只需遍历字符串并手动添加键即可。

答案 5 :(得分:0)

< p>使用下划线,您可以使用map方法执行此操作:< / p> < pre>< code> var obj = {     id1:' value1',     id2:' value2',     id3:' value3', } //使用下划线,转换数组 _.map(obj,function(value,key){     返回({     id:key.toString(),     价值:价值   }) }) // obj = Object {id1:" value1",id2:" value2",id3:" value3"} < /代码>< /预> < p>这是一个测试< / p>的jsfiddle < p>< a href =" https://jsfiddle.net/tbsgc94r/" rel =" nofollow">下划线地图< / a>< / p>

答案 6 :(得分:0)

使用下划线lib可以使用简单有效的方法。 请试一试:

_.map({id1: value1, id2: value2}, function(value, key) {
    return {id: key, value: value};
});