使用typescript修改JSON

时间:2016-08-21 03:05:35

标签: javascript json typescript

我正在创建一个Angular 2应用程序。我的服务器端请求返回一个看起来像

的JSON
[{"CountryId":1,"CountryCode":"IND","CountryName":"India","State":[]},
 {"CountryId":2,"CountryCode":"AUS","CountryName":"Australia","State":[]}]

我需要在下拉列表中显示此内容。所以我需要创建一个看起来像

的新JSON
[{"Label":"India","Value":"IND"},
{"Label":"Australia","Value":"AUS"}]

我不想写for循环,因为我将在很多地方使用它,我希望它在性能方面是最好的。如果有任何内置函数可以进行这种JSON重组,请告诉我。

2 个答案:

答案 0 :(得分:4)

除非您确切知道响应数组中将包含多少元素,否则您无法逃避迭代,尽管您可以选择如何:

// A
let result = response.map((elem) => ({
  'Label': elem.CountryName,
  'Value': elem.CountryCode
}))


// B
let result = []

response.forEach((elem) =>
  result.push({
    'Label': elem.CountryName,
    'Value': elem.CountryCode
  })
)


// C
let result = []

for (i in response) {
  result.push({
    'Label': response[i]['CountryName'],
    'Value': response[i]['CountryCode']
  })
)

答案 1 :(得分:3)

使用ES6解构,最紧凑的形式是:

 response.map(({CountryCode: Label, CountryName: Value}) => ({Label, Value}))