构建一个动态的json树

时间:2014-07-23 11:46:55

标签: javascript jquery arrays json

我想从数组中创建一个JSON树。 我的阵列形成如下:

var arraySource = [];
arraySource.push({key : "fr", value: "france"});
arraySource.push({key : "es", value: "spain"});
//...

console.debug(arraySource);

我想制作一个像这样形成的json树

var destJson = {
                 "fr" : "france",
                 "es" : "spain"
               };

我不知道如何动态制作它,因为我必须这样做

destJson.fr = "france"

但这是不可能的,因为数组中的项目是动态的

有什么想法吗? 如果你想玩,我已经制作了一个jsfiddle:

http://jsfiddle.net/lgm42/8L2Kf/1/

3 个答案:

答案 0 :(得分:4)

如果JavaScript中存在动态键,则会有square bracket notation

$.each(arraySource, function(index, item) {
    destJson[item.key] = item.value;
});

DEMO: http://jsfiddle.net/8L2Kf/2/

答案 1 :(得分:1)

您的代码非常完整。 你只需要在json中保存值。

您可以通过

直接访问数组
 destJson[item.key]

 destJson[item['key']]

并保存以下内容:

item.value

item['value']

所以你有:

destJson[item.key] = item.value;

Demo 从您的代码开始。

答案 2 :(得分:0)

创建一个新对象,并使用括号而不是点表示法动态添加键:

var obj = {};
for (var i = 0, l = arr.length; i < l; i++) {
  obj[arr[i].key] = arr[i].value;
}

DEMO

有一些more information here