将每个具有一个对象的 JSON 对象数组转换为 JSON 对象数组 [关闭]
Posted
技术标签:
【中文标题】将每个具有一个对象的 JSON 对象数组转换为 JSON 对象数组 [关闭]【英文标题】:Convert JSON array of objects which have one object each to a JSON array of objects [closed] 【发布时间】:2019-07-29 03:58:37 【问题描述】:我有一个对象数组,每个元素中都有一个对象,看起来像这样
[
"person":
"name": "John",
"isActive": true,
"id": 1
,
"person":
"name": "Ted",
"isActive": true,
"id": 2
]
我想把它转换成这种没有类名的格式:
[
"Name": "John",
"IsActive": true,
"id": 1
,
"Name": "Ted",
"IsActive": true,
"id": 2
]
结果将允许我将信息解析为 Kendo UI 网格。转换正在 Typescript 文件中完成。
【问题讨论】:
我看到评论被搁置,因为它太宽泛了。通过***定义“......如果你的问题可以被整本书回答,或者有很多有效的答案(但无法确定哪个 - 如果有的话 - 是正确的),那么它可能对我们的格式来说太宽泛了”。从下面的答案中我可以清楚地看到,代表我对 data.map 缺乏了解。我确实得到了我需要的答案。在我提出问题之前我进行了搜索,但我的搜索结果没有显示地图,因为我一直使用关键字“convert”。 【参考方案1】:你可以使用.map
方法
const arr = ["person": "name": "John","isActive": true,"id": 1,"person": "name": "Ted","isActive": true,"id": 2]
.map(( person ) =>
return
"Name": person.name,
"IsActive": person.isActive,
"id": person.id
)
console.log(arr)
【讨论】:
【参考方案2】:非常简单 people.map(p=>p.person)
var people=[
"person":
"name": "John",
"isActive": true,
"id": 1
,
"person":
"name": "Ted",
"isActive": true,
"id": 2
]
var newPeople=people.map(p=>p.person)
console.log(newPeople)
【讨论】:
【参考方案3】:您可以映射解构后的属性person
。
var data = [ person: name: "John", isActive: true, id: 1 , person: name: "Ted", isActive: true, id: 2 ],
result = data.map(( person ) => person);
console.log(result);
.as-console-wrapper max-height: 100% !important; top: 0;
【讨论】:
【参考方案4】:使用map
并返回一个带有所需键的对象
let data = [
"person":
"name": "John",
"isActive": true,
"id": 1
,
"person":
"name": "Ted",
"isActive": true,
"id": 2
];
let newData = data.map(function(item)
return
Name: item.person.name,
IsActive: item.person.isActive,
id: item.person.id
;
);
console.log(newData)
【讨论】:
感谢您的回答。我能够将旧对象映射到新对象,并意识到这也修复了变量名称 -> 名称的差异。它也成功地出现在了剑道 UI 网格中 @Sniipe 乐于助人以上是关于将每个具有一个对象的 JSON 对象数组转换为 JSON 对象数组 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章