我想从数组中创建一个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:
答案 0 :(得分:4)
如果JavaScript中存在动态键,则会有square bracket notation:
$.each(arraySource, function(index, item) {
destJson[item.key] = item.value;
});
答案 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;
}