0

我有这个将数据存储在数组中的代码。但我想要 json 格式的输出。目前,我可以将输入数据转换为 json,但我不确定如何更改与对象一起使用的代码。例如行上的代码:

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 });

}

4

2 回答 2

2

您可以通过调用将任意 Javascript 对象序列化为 JSON 字符串JSON.stringify()

这可能是也可能不是你想要的。

于 2013-05-14T16:34:06.570 回答
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 介绍:使用对象

于 2013-05-14T16:42:03.187 回答