我知道这些问题存在了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;
},];
答案 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"}]