我的JSON数据如下所示:
[{"name":"age","value":31},
{"name":"height (inches)","value":62},
{"name":"location","value":"Boston, MA"},
{"name":"gender","value":"male"}]
我需要它看起来像这样:
[{"age": 31},
{"height (inches)": 62},
{"location": "Boston, MA"},
{"gender": "male"}]
这是一个jQuery Web应用程序。我将如何进行此转换?没有挑剔它是如何完成的,只是找不到现有的解决方案。谢谢!
答案 0 :(得分:2)
这应该可以解决问题:
a = [{"name":"age","value":31},
{"name":"height (inches)","value":62},
{"name":"location","value":"Boston, MA"},
{"name":"gender","value":"male"}];
b = a.map(function(item){
var res = {};
res[item.name] = item.value;
return res;
});
console.log(b);
答案 1 :(得分:0)
var jsonData = [{"name":"age","value":31},
{"name":"height (inches)","value":62},
{"name":"location","value":"Boston, MA"},
{"name":"gender","value":"male"}];
var newObj = [];
jsonData.forEach(function(d){
var obj = {};
obj[d.name] = d.value;
newObj.push(obj)
});
console.log(JSON.stringify(newObj))

答案 2 :(得分:-1)
解析你的JSON字符串,然后迭代并构建一个字符串,如下所示:
var s = [{"name":"age","value":31},{"name":"height(inches)","value":62},{"name":"location","value":"Boston, MA"},{"name":"gender","value":"male"}];
var h='[';
for(var i = 0; i<s.length; i++){
h+='{"'+s[i].name+'":"' + s[i].value + '"}'
if(i!=s.length-1){
h+=','
}
}
h+=']';
h=JSON.parse(h);