如何动态创建一个简单的json数组?

时间:2015-08-03 07:16:40

标签: javascript jquery html json angularjs

我知道这些问题存在了100次,但我无法将解决方案转移到我的代码中,所以我希望你能帮助我。这应该很简单,但我不能让它发挥作用。

这只是我的代码与其他变量的原因:

我的代码:

for (var key in array) {
}

我想要的JSON:

[{
    key: "One",
    y: 5
}, {
    key: "Two",
    y: 2
},];

伪JSON:

[{
    key: key,
    y: array[key].data
},{
    key: key,
    y: array[key].data;
},];

4 个答案:

答案 0 :(得分:2)

我不明白什么是'数组'。它是一个对象还是一个数组?

如果'array'是一个数组,我想你想要的就是这个:

var new_arr = [];

your_array.forEach( function(entry) {
  new_arr.push({key: entry, y: entry.data}); // you should change it according to your need. 
})

return JSON.stringify(new_arr);

或者如果'array'只是一个对象,你可能需要这个:

var new_arr = [];

for (key in array) {
  new_arr.push({key: key, y: array[key].data}); // you should change it according to your need. 
}

return JSON.stringify(new_arr);

答案 1 :(得分:2)

您可以尝试此解决方案:

var data = [];
for (var key in array) {
  data.push({
    key :  key,
    y : array[key].data
  });
}

console.log(data);

但是,Pseudo JSON:呢?

DEMO - 请参阅控制台(chrome)了解输出

答案 2 :(得分:0)

JSON只是表达对象和数组的语法,与脚本语言的语法无关。 显然,您希望将array转换为另一个结构,并以JSON表示。转换为JSON通常由内置函数JSON.stringify执行。

假设你的array不是一个真正的数组(只有数字索引,通常没有间隙),但更像是一个类似对象的结构,我建议使用以下代码:

var data = []
for (var key in array)
{
    data.push({key: key, y: array[key].data});
}
var json = JSON.stringify(data);
//...

如果array确实是数组you shouldn't use a for-in-loop。否则你应该考虑重命名它以避免混淆。

答案 3 :(得分:0)

您可以使用以下行创建一个json数组

var jsonArr = [];

然后你可以从下面的行

创建json对象
var obj = new Object();

将数据放入json对象中,如下所示

obj['id'] = 123;
obj['name'] = 'ABC';

然后将json对象放在json数组中作为

jsonArr.push(obj);

你想在json数组中添加多个对象然后只需创建json对象并使用push方法逐个添加。

[{"id":"123","name":"ABC"}]