这是我的JSON对象:
{
"id": 2,
"full_name": "Karan Kumar",
"user_skills": [
{
"skill_id": 1,
"skill": {
"skill_name": "Angular 8"
}
},
{
"skill_id": 3,
"skill": {
"skill_name": "Java Spring"
}
}
],
"resource_allocateds": [
{
"project_id": 1,
"end_date": "2019-06-20",
"project": {
"project_name": "Inventory System"
}
},
{
"project_id": 2,
"end_date": "2020-01-15",
"project": {
"project_name": "Hospital Management System"
}
}
]
}
我想从上面的JSON中选择某些属性,并且想要这样的东西:
{
"id": 1,
"full_name": "Karan Kumar",
"skills": [{
"skill_id": 1,
"skill_name": "Angular 8"
},
{
"skill_id": 3,
"skill_name": "Java Spring"
}],
"resource_allocateds": [{
"project_id": 1,
"end_date": "2019-06-20",
"project_name": "Inventory System"
},
{
"project_id": 2,
"end_date": "2020-01-15",
"project_name": "Hospital Management System"
}]
}
我尝试使用Lodash的partialRight
,但是它似乎不适用于可迭代的对象,并且还尝试了flatMap,但没有效果。如果有人帮我解决这个问题,那就太好了。提前致谢!
您可以使用香草javascript而不是Lodash来做到这一点。寻找ES6方法,例如map / reduce / filter。范例:
const input = {
"id": 2,
"full_name": "Karan Kumar",
"user_skills": [
{
"skill_id": 1,
"skill": {
"skill_name": "Angular 8"
}
},
{
"skill_id": 3,
"skill": {
"skill_name": "Java Spring"
}
}
],
"resource_allocateds": [
{
"project_id": 1,
"end_date": "2019-06-20",
"project": {
"project_name": "Inventory System"
}
},
{
"project_id": 2,
"end_date": "2020-01-15",
"project": {
"project_name": "Hospital Management System"
}
}
]
};
const { id, full_name, user_skills, resource_allocateds } = input;
const output = {
id,
full_name,
skills: user_skills.map(item => ({
skill_id: item.skill_id,
skill_name: item.skill.skill_name
})),
resource_allocateds: resource_allocateds.map(item => ({
project_id: item.project_id,
end_date: item.end_date,
project_name: item.project.project_name
})),
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句