Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重新格式化JSON数据_Javascript_Jquery_Json - Fatal编程技术网

Javascript 重新格式化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", },

问题

我有一个json数据示例,它的格式不是我需要的格式:

"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);