【问题标题】:Build a dynamic json tree构建动态 json 树
【发布时间】:2014-07-23 11:46:54
【问题描述】:

我想从一个数组中创建一个 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/

【问题讨论】:

    标签: javascript jquery arrays json


    【解决方案1】:

    对于 JavaScript 中的动态键,有一个 square bracket notation:

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

    演示: http://jsfiddle.net/8L2Kf/2/

    【讨论】:

      【解决方案2】:

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

      你可以直接访问数组

       destJson[item.key]
      

       destJson[item['key']]
      

      并保存值包含在:

      item.value
      

      item['value']
      

      所以你有:

      destJson[item.key] = item.value;
      

      Demo 从您的代码开始。

      【讨论】:

        【解决方案3】:

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

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

        DEMO

        有一些more information here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-29
          • 1970-01-01
          • 1970-01-01
          • 2021-11-29
          • 1970-01-01
          • 2014-02-15
          • 2012-07-28
          • 1970-01-01
          相关资源
          最近更新 更多