我有这个代码将数据存储在数组中。但我想要json格式的输出。 目前,我可以将输入数据转换为json,但我不知道如何更改与object一起使用的代码。 例如,行上的代码:
target = (children[p] || (children[p] = []));
和
target.push({value:item});
有什么想法吗?
for (var i = 0, len = arry.length; i < len; ++i) {
var item = arry[i],
p = item.Parent,
target = [];
if(p == rootId) {
target = roots;
}
else {
target = (children[p] || (children[p] = []));
}
target.push({ value: item });
}
答案 0 :(得分:2)
您可以通过调用JSON.stringify()
将任意Javascript对象序列化为JSON字符串。
这可能是也可能不是你想要的。
答案 1 :(得分:0)
如果你试图通过迭代JS对象而不是数组来使相同的代码工作,那么你可能想要这样:
for (var key in obj) {
var item = obj[key];
p = item.Parent,
target = [];
if(p == rootId) {
target = roots;
}
else {
target = (children[p] || (children[p] = []));
}
target.push({ value: item });
}
如果你试图从一个数组开始但是要填充一个对象,那么也许你想要这个:
for (var i = 0, len = arry.length; i < len; ++i) {
var item = arry[i],
p = item.Parent,
target = [];
if(p == rootId) {
target = roots;
}
else {
target = (children[p] || (children[p] = {}));
}
target.value = item;
}
我建议你阅读有关对象和属性的良好MDN简介:Working with objects