Javascript 将嵌套JSON数组转换为平面JSON数组
我有一个嵌套的JSON数组,它来自mongoDB查询,我想将其转换为平面JSON。我使用的是嵌套的mondo文档,但我想以更可读的方式显示数据。我的JSON具有以下结构:Javascript 将嵌套JSON数组转换为平面JSON数组,javascript,node.js,Javascript,Node.js,我有一个嵌套的JSON数组,它来自mongoDB查询,我想将其转换为平面JSON。我使用的是嵌套的mondo文档,但我想以更可读的方式显示数据。我的JSON具有以下结构: [{ "country": "Country A", "regions": [{ "region": "region A1", "cities": [{ "city": "city A11"
[{
"country": "Country A",
"regions": [{
"region": "region A1",
"cities": [{
"city": "city A11"
},
{
"city": "city A12"
}
]
},
{
"region": "region A2",
"cities": [{
"city": "city A21"
},
{
"city": "city A22"
}
]
}
]
},
{
"country": "Country B",
"regions": [{
"region": "region B1",
"cities": [{
"city": "city B11"
},
{
"city": "city B12"
}
]
},
{
"region": "region B2",
"cities": [{
"city": "city B21"
},
{
"city": "city B22"
}
]
}
]
}
]
我只想显示重要信息,不想显示嵌套数组的结构。
如何在Javascript中修改数据以实现以下结果
[
{
"country": "Country A",
"region":"Region A1",
"city": "City A11"
},
{
"country": "Country A",
"region":"Region A1",
"city": "City A12"
},
-------------
{
"country": "Country B",
"region":"Region B1",
"city": "City B11"
},
-----------
{
"country": "Country B",
"region":"Region B2",
"city": "City B22"
}
]
实现此结果最简单的方法是什么?最简单的方法是循环并创建一个数组。您可以使用reduce()
执行此操作:
let arr=[{“国家”:“国家A”,“地区”:[{“地区”:“地区A1”,“城市”:[{“城市”:“城市A11”},{“城市”:“城市A12”},{“地区”:“地区A2”,“城市”:[{“城市”:“城市A21”},{“城市A22”},},{“国家”:“国家B”,“地区”:[{“地区”:“地区B1”,“城市”:“城市B11”},{“城市”:“城市B12”},{“地区”},{“地区”,“城市”:[{“城市”:“城市B21”},{“城市”:“城市B22”}]}]
let flat=arr.reduce((arr,{country,regions})=>{
regions.forEach({region,cities})=>{
cities.forEach({city})=>{
arr.push({国家、地区、城市})
})
})
返回arr
}, [])
控制台。原木(平)
发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您尝试了什么,以便说明您遇到的具体障碍。有关更多信息,请参阅并采取行动。