将每个具有一个对象的 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 对象数组 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

怎么将json对象添加进json数组中

怎么把json字符串转成数组对象

csv转换obj

java中把json怎么转换成数组

java中把json怎么转换成数组?

Swifty JSON:将 JSON 数组中的对象分层列表转换为分层 Swift 对象