Javascript 重新格式化JSON数据
问题 我有一个json数据示例,它的格式不是我需要的格式:Javascript 重新格式化JSON数据,javascript,jquery,json,Javascript,Jquery,Json,问题 我有一个json数据示例,它的格式不是我需要的格式: "stations": { "st1": "station 1", "st2": "station 2", "st3": "Station 3", } 问题 如何将数据重新格式化为: "stations": [ { "id": "st1", "name": "station 1", }, { "id": "st2", "name": "station 2", },
"stations": {
"st1": "station 1",
"st2": "station 2",
"st3": "Station 3",
}
问题
如何将数据重新格式化为:
"stations": [
{
"id": "st1",
"name": "station 1",
},
{
"id": "st2",
"name": "station 2",
},
{
"id": "st3",
"name": "station 3",
}
]
尝试过
我试图先简单地记录数据以进行测试,但我甚至很难在键/值对之间进行迭代,因为它们本质上是字符串
这就是我所尝试的:
$.get( '/js/ajax/tube-data.json', function( data ) {
$.each(data.stations, function () {
// I was expecting st1, st2, st3 to show in the console
// but got first letter of each station
console.log(this[0])
});
}).error(function() {console.log(arguments) });
有更好的方法吗?可以。
var object={stations:{st1:“station 1”,st2:“station 2”,st3:“station 3”,};
object.stations=object.keys(object.stations).map(函数(k){
返回{id:k,name:object.stations[k]};
})
document.write(''+JSON.stringify(object,0,4)+'')代码>我希望这有帮助。这是一个普通的代码,用于执行相同的操作:
你查过了吗?正是我的意思,谢谢
var b=[];
for(key in a) {
console.info(key);
var x = {};
x[key] = a[key];
b.push(x);
}
console.info("b: ", b);