迭代嵌套的JSON(Iterate nested JSON)

编程入门 行业动态 更新时间:2024-10-19 11:48:48
迭代嵌套的JSON(Iterate nested JSON)

我有嵌套对象之类的

{ "root": { "company": [{ "id": "Google", "contact": [{ "field": "name", "value": "Larry Page" }, { "field": "flag", "value": "" }, { "field": "initial", "value": "LP" } ] }, { "id": "Snap", "contact": [{ "field": "name", "value": "Evan Spiegel" }, { "field": "flag", "value": "true" }, { "field": "initial", "value": "ES" } ] }, { "id": "Airbnb", "contact": [{ "field": "name", "value": "Brian Chesky" }, { "field": "flag", "value": "" }, { "field": "initial", "value": "BC" } ] } ] } }

我需要根据标志值创建2个单独的列表 - 一个用于flag = "" ,另一个用于flag = true 。

预期结果是2个清单:

var flagisTrue = {ES} var flagisEmpty = [{"name":"Larry Page", "initial": "LP"}, {"name":"Brian Chesky", "initial": "BC"}]

其中flagisTrue只包含初始值,而flagisEmpty包含名称和初始值。

如何在JavaScript中使用此结构?

I have nested object like

{ "root": { "company": [{ "id": "Google", "contact": [{ "field": "name", "value": "Larry Page" }, { "field": "flag", "value": "" }, { "field": "initial", "value": "LP" } ] }, { "id": "Snap", "contact": [{ "field": "name", "value": "Evan Spiegel" }, { "field": "flag", "value": "true" }, { "field": "initial", "value": "ES" } ] }, { "id": "Airbnb", "contact": [{ "field": "name", "value": "Brian Chesky" }, { "field": "flag", "value": "" }, { "field": "initial", "value": "BC" } ] } ] } }

And i need to create 2 separate lists based on the flag values - one for flag = "" and another for flag = true.

Expected results are the 2 lists:

var flagisTrue = {ES} var flagisEmpty = [{"name":"Larry Page", "initial": "LP"}, {"name":"Brian Chesky", "initial": "BC"}]

where flagisTrue only contains the initial while flagisEmpty contains the name as well as the initial.

How do I work this structure in JavaScript?

最满意答案

试试这个。 希望它会有所帮助。

var object = { "root" : { "company" : [{ "id" : "Google", "contact" : [{ "field" : "name", "value" : "Larry Page" }, { "field" : "flag", "value" : "" }, { "field" : "initial", "value" : "LP" } ] }, { "id" : "Snap", "contact" : [{ "field" : "name", "value" : "Evan Spiegel" }, { "field" : "flag", "value" : "true" }, { "field" : "initial", "value" : "ES" } ] }, { "id" : "Airbnb", "contact" : [{ "field" : "name", "value" : "Brian Chesky" }, { "field" : "flag", "value" : "" }, { "field" : "initial", "value" : "BC" } ] } ] } } var flagisTrue = [], flagisEmpty = []; for (var i = 0; i < object.root.company.length; i++) { var contact = object.root.company[i].contact; var result = {}; for (var j = 0; j < contact.length; j++) result[contact[j].field] = contact[j].value; if (result["flag"]) flagisTrue.push({ name : result["name"], initial : result["initial"] }); else flagisEmpty.push({ name : result["name"], initial : result["initial"] }); } console.log(flagisEmpty); console.log(flagisTrue);

Try this one. Hope it will help.

var object = { "root" : { "company" : [{ "id" : "Google", "contact" : [{ "field" : "name", "value" : "Larry Page" }, { "field" : "flag", "value" : "" }, { "field" : "initial", "value" : "LP" } ] }, { "id" : "Snap", "contact" : [{ "field" : "name", "value" : "Evan Spiegel" }, { "field" : "flag", "value" : "true" }, { "field" : "initial", "value" : "ES" } ] }, { "id" : "Airbnb", "contact" : [{ "field" : "name", "value" : "Brian Chesky" }, { "field" : "flag", "value" : "" }, { "field" : "initial", "value" : "BC" } ] } ] } } var flagisTrue = [], flagisEmpty = []; for (var i = 0; i < object.root.company.length; i++) { var contact = object.root.company[i].contact; var result = {}; for (var j = 0; j < contact.length; j++) result[contact[j].field] = contact[j].value; if (result["flag"]) flagisTrue.push({ name : result["name"], initial : result["initial"] }); else flagisEmpty.push({ name : result["name"], initial : result["initial"] }); } console.log(flagisEmpty); console.log(flagisTrue);

更多推荐

本文发布于:2023-04-28 02:42:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1329764.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:嵌套   迭代   JSON   Iterate   nested

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!