Javascript 使用typescript修改JSON

Javascript 使用typescript修改JSON,javascript,json,typescript,Javascript,Json,Typescript,我正在创建一个Angular 2应用程序。我的服务器端请求返回一个JSON,看起来像 [{"CountryId":1,"CountryCode":"IND","CountryName":"India","State":[]}, {"CountryId":2,"CountryCode":"AUS","CountryName":"Australia","State":[]}] [{"Label":"India","Value":"IND"}, {"Label":"Australia","Valu

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

[{"CountryId":1,"CountryCode":"IND","CountryName":"India","State":[]},
 {"CountryId":2,"CountryCode":"AUS","CountryName":"Australia","State":[]}]
[{"Label":"India","Value":"IND"},
{"Label":"Australia","Value":"AUS"}]
我需要在下拉列表中显示这个。所以我需要创建一个新的JSON

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

我不想写循环,因为我将在很多地方使用它,我希望它的性能尽可能好。请告诉我是否有任何内置函数可以执行这种JSON重构。

除非您确切知道响应数组中有多少元素,否则您无法避免迭代,尽管您可以选择以下方式:

/A
让结果=响应.map((elem)=>({
“标签”:elem.CountryName,
“值”:elem.CountryCode
}))
//B
让结果=[]
响应。forEach((elem)=>
结果:推({
“标签”:elem.CountryName,
“值”:elem.CountryCode
})
)
//C
让结果=[]
(我回应){
结果:推({
“标签”:响应[i]['CountryName'],
“值”:响应[i]['CountryCode']
})
)

除非您确切知道响应数组中有多少个元素,否则无法避免对其进行迭代,尽管您可以选择以下方式:

/A
让结果=响应.map((elem)=>({
“标签”:elem.CountryName,
“值”:elem.CountryCode
}))
//B
让结果=[]
响应。forEach((elem)=>
结果:推({
“标签”:elem.CountryName,
“值”:elem.CountryCode
})
)
//C
让结果=[]
(我回应){
结果:推({
“标签”:响应[i]['CountryName'],
“值”:响应[i]['CountryCode']
})
)

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

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

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

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

您确定需要转换JSON吗?UI组件不能配置为使用标签和值的备用键吗?的
循环正是您所需要的(尽管
map()
更好)@Thilo我正在使用自定义库。这可能暂时不支持。有时您只需编写一些代码darnit!您并不真的想创建新的JSON。我假设您正在将重新返回的JSON转换为javascript数组,并希望将数组中的对象转换为具有不同属性的对象。在标题和使用JSON标记使您看起来好像在特别谈论JSON(JavaScript对象表示法),即JavaScript对象的字符串表示法。您确定需要转换JSON吗?UI组件不能配置为使用标签和值的备用键吗?
循环正是您所需要的(尽管
map()
更好)@Thilo我正在使用自定义库。这可能暂时不支持。有时您只需编写一些代码darnit!您并不真的想创建新的JSON。我假设您正在将重新返回的JSON转换为javascript数组,并希望将数组中的对象转换为具有不同属性的对象。在标题和使用JSON标记使您看起来好像在特别谈论JSON(JavaScript对象表示法),javascript对象的字符串表示形式…这些都不太可能导致任何性能问题。是的,不用担心,这样一个简单的结构不太可能会引起任何性能问题。让我来试试……而且这些都不太可能导致任何性能问题。是的,不用担心,这样一个简单的结构不会导致任何性能问题非常感谢。让我来试试。