javascript - 如何将嵌套对象转换为一个对象
问题描述
我想将下面的对象转换为特定格式
Product: { "alias":"d8156ad9-06af-45ca-a8eb-17f6148f1bd2",
"manufacturing_company":{
"alias":"1",
"name":"Company",
"status":1
},
"form":{
"alias":"2",
"name":"Suppository",
"status":1
},
"generic":{
"alias":"1",
"name":"Esomeprazole",
"status":1
},
"name":"AA",
"trading_price":15,
"purchase_price":10,
"pack_size":"10",
"is_salesable":true,
"primary_unit":{
"alias":"1",
"name":"Form1",
"status":2
},
"secondary_unit":{
"alias":"1",
"name":"Form1",
"status":2
},
"conversion_factor":25,
"code":"201",
"species":"drfgfgd",
"strength":"96",
"full_name":"AA 96",
"status":1,
"category":{
"alias":"8",
"name":"Test2",
"status":1
},
"subgroup":{
"alias":"4",
"name":"CDCD",
"status":1,
"product_group":{
"id":9,
"alias":"1",
"name":"zsdfasd",
"status":1
}
}
}
到
Product: { "alias":"d8156ad9-06af-45ca-a8eb-17f6148f1bd2",
"manufacturing_company":"1",
"form":"2",
"generic":"1",
"name":"AA",
"trading_price":15,
"purchase_price":10,
"pack_size":"10",
"is_salesable":true,
"primary_unit":"1",
"secondary_unit":"1",
"conversion_factor":25,
"code":"201",
"species":"drfgfgd",
"strength":"96",
"full_name":"AA 96",
"status":1,
"category":"8",
"subgroup":"4"
}
解决方案
遍历对象并根据值是否为标量创建一个新对象:
let obj={Product:{alias:"d8156ad9-06af-45ca-a8eb-17f6148f1bd2",manufacturing_company:{alias:"1",name:"Company",status:1},form:{alias:"2",name:"Suppository",status:1},generic:{alias:"1",name:"Esomeprazole",status:1},name:"AA",trading_price:15,purchase_price:10,pack_size:"10",is_salesable:!0,primary_unit:{alias:"1",name:"Form1",status:2},secondary_unit:{alias:"1",name:"Form1",status:2},conversion_factor:25,code:"201",species:"drfgfgd",strength:"96",full_name:"AA 96",status:1,category:{alias:"8",name:"Test2",status:1},subgroup:{alias:"4",name:"CDCD",status:1,product_group:{id:9,alias:"1",name:"zsdfasd",status:1}}}};
let resObj = {}
Object.entries(obj.Product).map(([key, value]) => {
if(typeof value === "object"){
resObj[key] = value.alias
}else{
resObj[key] = value
}
})
console.log(resObj)
推荐阅读
- angular - Angular 7 HttpClient 发布响应标头为空
- php - 在服务器php之间传递变量
- vb.net - 为什么即使我已经设置了它的值,webbrowser 中的字段仍然被认为是空的?
- c - 如何在 Linux C 上同步两个线程?
- kotlin - 未解决的类属性引用
- javascript - 从外部文件应用绑定
- c# - c# 循环遍历列表以将数据传递给 SendGrid 模板
- powershell - Powershell 按端口搜索 TCP 连接
- java - jvm是否处理接收系统级信号的divideByZero异常?
- outlook - AppleScript 将 Outlook 电子邮件移动到文件夹