如何用json格式写这个?

时间:2013-05-14 16:33:04

标签: javascript json

我有这个代码将数据存储在数组中。但我想要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 });

}

2 个答案:

答案 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