【问题标题】:How to convert JSON to map using javascript? [closed]如何使用 javascript 将 JSON 转换为地图? [关闭]
【发布时间】:2015-09-30 09:52:45
【问题描述】:

我必须使用 javascript 将嵌套的 JSON 转换为映射。

JSON 文件

{
"centers" : {
  "ER" : {
    "admin":{
      "users" : {
        "emp1" : {
          "password" : "abcdefgh",
          "username" : "pankaj-roy"
        },
        "emp2" : {
          "password" : "12345678",
          "username" : "niketan-shah"
        }
      }
    }
  }
}
}

我必须从上面的 JSON 文件创建一个地图。

地图

key          value
centers      ER
ER           admin
admin        users
users        emp1,emp2
emp1         password,username
emp2         password,username

【问题讨论】:

  • 到目前为止你尝试过什么?你有这个特别的问题吗?你事先知道钥匙吗?
  • 你想要的对象是什么?
  • 是的..我提前知道钥匙..我想要的对象是创建一个像上面这样的地图。

标签: javascript json dictionary converter


【解决方案1】:

我想这就是你要找的。​​p>

function keyMap(src, target){
  target = target || {};
  Object.keys(src).forEach(function(propName){
     var prop = src[propName];
     if(typeof prop == "object"){
       target[propName] = Object.keys(prop).join(',');
       keyMap(prop, target);
     }
  });
  return target;
};

var result = keyMap({
"centers" : {
  "ER" : {
    "admin":{
      "users" : {
        "emp1" : {
          "password" : "abcdefgh",
          "username" : "pankaj-roy"
        },
        "emp2" : {
          "password" : "12345678",
          "username" : "niketan-shah"
        }
      }
    }
  }
}
});
                      
console.log(result);

【讨论】:

  • 仅供参考,大多数浏览器都支持 Object.keys 方法,只有 MSIE8 和更早版本不支持。
  • 你是对的。我虽然这是一个 ES6 特性。在这种情况下,我们不需要 lodash。
猜你喜欢
  • 1970-01-01
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 2017-02-24
  • 2020-05-07
相关资源
最近更新 更多