更改(映射)JSON列表形状 - 在TypeScript中向对象添加标记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改(映射)JSON列表形状 - 在TypeScript中向对象添加标记相关的知识,希望对你有一定的参考价值。
我试图在我的Angular(TypeScript)项目中更改通过REST请求收到的JSON列表。
最初的JSON看起来像这样:
[
{
"id":1,
"position":3,
"articleNumber":6
},
{
"id":2,
"position":2,
"articleNumber":7
}
]
我需要它成为:
{
"data":[
{
"data":{
"id":1,
"position":3,
"articleNumber":6
}
},
{
"children":[
{
"data":{
"id":2,
"position":2,
"articleNumber":7
}
}
]
}
]
}
我设法通过创建一个新对象{data:}来添加'data'标签,然后将data.map的结果分配给data属性。
const mapped = { data: array.map(item => ({ data: item }))};
结果,我明白了:
{
"data":[
{
"data":{
"id":1,
"position":3,
"articleNumber":6
}
},
{
"data":{
"id":2,
"position":2,
"articleNumber":7
}
}
]
}
如何添加'children'标签,其中可能包含许多'数据'?
答案
看看这个逻辑:
let array = [ {
"id":1,
"position":3,
"articleNumber":6},{
"id":2,
"position":2,
"articleNumber":7}];
const mapped1 = { data: array[0]};
const mapped2 = { children: array.map((item, index) => ({ data: item }))} ;
const final = {data:[mapped1]};
final.data.push(mapped2);
console.log(final);
另一答案
从'@ angular / http'导入{Response};
在您的服务:.map((item: Response) => item.json());
现在,在你的控制器(component.ts)中使用.subscribe()
,你将获得JSON中的对象。
以上是关于更改(映射)JSON列表形状 - 在TypeScript中向对象添加标记的主要内容,如果未能解决你的问题,请参考以下文章
在 React 中映射 JSON 数组时如何使用 onClick 定位列表中的单个项目