将JSON映射解析为对象

时间:2016-11-15 15:19:07

标签: javascript angularjs json

我正在将我在JSON中的响应转换为可读形式。响应是Map.i.e它有一个键和值。

 data={
  "name":"name1"
  "mapIWantToConvert":{
                       "key1":"value1"
                       "key2":"value2"
                       "key3":"value3"
                      }
      }

我想迭代并获取键和值的所有值并将它们设置为其他var.I我从for循环中获取键。 这不起作用:

var convertedData=data.mapIWantToConvert.key[i];
我在做错了什么。谢谢

输出又是一个json文件,但是不同的。

output={
    "allDataForkey1":{
                       "key1":"value1"
                      }
    "allDataForKey2":{
                      "key2":"value2"
                      }
 }

2 个答案:

答案 0 :(得分:1)

如果您希望从响应中获取转换mapIWantToConvert键的值,您可以这样做。

var data = {
  "name": "name1",
  "mapIWantToConvert": {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3",
  }
}

var dataMap = data.mapIWantToConvert;

var values = Object.keys(dataMap).reduce(
  (valueArr, key) => [...valueArr, dataMap[key]], 
  []
)

console.log(values)

答案 1 :(得分:0)

您可以像这样迭代对象的键:

var myObject = data.mapIWantToConvert
var newObject = {}

for (var key in myObject) {
    if (myObject.hasOwnProperty(key)) {
        newObject[key] = myObject[key]
    }
}