将json对象转换为特定的json数组

时间:2014-06-04 14:52:57

标签: javascript json arrays jsonobject

我有一个json对象{"yAxis" : { "Batting" : [10, 20, 30, 40] , "Bowling" : [10, 30, 50, 70], "Fielding" : [20, 40, 50, 70] } },

并希望像这样转换为json数组

[ { "name": "Batting" ,"data": [10,20,30,40]} , { "name": "Bowling" ,"data": [10,30,50,70] },{ "name": "Fielding" ,"data": [20,40,50,70]}] 

我可以为每个索引创建json对象,但是如何将它们放到json数组中呢?

for(var abc in objJSON.yAxis)
{

    seriesValues +=  JSON.stringify({name:abc,data:(objJSON.yAxis)[abc]});
}

任何帮助?

3 个答案:

答案 0 :(得分:2)

你可以循环创建对象,不用担心stringify它。

var obj = {"yAxis" : { "Batting" : [10, 20, 30, 40] , "Bowling" : [10, 30, 50, 70], "Fielding" : [20, 40, 50, 70] } };

var keys = Object.keys(obj.yAxis),
    narray = [];
keys.forEach(function(v) {
    narray.push({ "name": v, "data": obj.yAxis[v] });
});

然后,如果您需要对其进行字符串化,则可以稍后执行JSON.stringify(narray)

答案 1 :(得分:1)

你关闭了:

var seriesValues = [];
for (var abc in objJSON.yAxis) {
  seriesValues.push({name: abc, data: objJSON.yAxis[abc]});
}

这将构成一个javascript数组。如果你需要它作为JSON字符串,那么追加:

var myString = JSON.stringify(seriesValues);

答案 2 :(得分:0)

简单地在数组生成之后进行字符串化。

var result = [];

for(var name in objJSON.yAxis)
{
    result.push({name: name, data: objJSON.yAxis[name]});
}

return JSON.stringify(result);