Javascript 循环嵌套json数组以创建新数组
我正在开发一个lambda函数,Javascript 循环嵌套json数组以创建新数组,javascript,arrays,json,javascript-objects,Javascript,Arrays,Json,Javascript Objects,我正在开发一个lambda函数,从一个API获取s数据,然后将其发布到另一个API。数据是具有属性的联系人列表,例如名字、姓氏、电子邮件等 JSON输出包含太多我不需要的属性。请参见下面的代码示例(实际代码包含更多属性和嵌套数组/对象) 如何循环遍历每个JSON对象以创建一个新的、更简单的JSON数组,如下所示: [ { "email": "example@example.com", "first_name": "", "last_name": "User" },
从一个API获取
s数据,然后将其发布到另一个API。数据是具有属性的联系人列表,例如名字、姓氏、电子邮件等
JSON输出包含太多我不需要的属性。请参见下面的代码示例(实际代码包含更多属性和嵌套数组/对象)
如何循环遍历每个JSON对象以创建一个新的、更简单的JSON数组,如下所示:
[
{
"email": "example@example.com",
"first_name": "",
"last_name": "User"
},
{
"email": "example2@example.com",
"first_name": "Example",
"last_name": "User"
}
]
提前感谢您的帮助。您可以使用用于对象和映射的
var data=[{contacts:[{addedAt:1532803458796,vid:101}],“合并审计”:[],属性:{“名字”:{value:“你好”},姓氏:{value:“那里”},电子邮件:{value::hello@there.com" } } }],
结果=data.map({属性:{
'first name':{value:first_name},
'last name':{value:last_name},
电子邮件:{value:email}
}})=>({名字、姓氏、电子邮件});
控制台日志(结果)代码>试试看
let json=[
{
“联系人”:[{
“增补”:1532803458796,
“视频”:101
}],
“合并审计”:[],
“财产”:{
“名字”:{
“值”:“你好”
},
“姓氏”:{
“价值”:“那里”,
},
“电子邮件”:{
“值”:hello@there.com"
}
}
},
{
“联系人”:[{
“增补”:1532803458796,
“视频”:101
}],
“合并审计”:[],
“财产”:{
“名字”:{
“价值”:“汤姆”
},
“姓氏”:{
“价值”:“史密斯”,
},
“电子邮件”:{
“值”:tom@smith.com"
}
}
}
]
让r=json.map(x=>({
电子邮件:x.properties.email.value,
first_name:x.properties['first-name'].值,
姓氏:x.properties['last-name'].值,
}));
控制台日志(r)代码>JSON是文本。当你说“原始JSON”时,你似乎真的在强调它是JSON。。。但是是吗?还是我们从一个JavaScript对象开始?您的json是否有多个称为属性的键?经过测试,工作完美且非常高效,谢谢!您的解决方案也会产生相同的结果。谢谢你提供更多的信息。这也适用于数据变量中的多个对象吗?确实如此,因为数据是一个数组,每个相同的组织对象都会被转换。
[
{
"email": "example@example.com",
"first_name": "",
"last_name": "User"
},
{
"email": "example2@example.com",
"first_name": "Example",
"last_name": "User"
}
]
json.map( x => ({
email: x.properties.email.value,
first_name: x.properties['first-name'].value,
last_name: x.properties['last-name'].value,
}));