Javascript 如何将嵌入的JSON扁平化到多个文档中
考虑以下JSON:Javascript 如何将嵌入的JSON扁平化到多个文档中,javascript,json,node.js,Javascript,Json,Node.js,考虑以下JSON: { "Company" : "ABC Company", "Place" : { "Bangalore" :{ "Address" : "MG Road", "Phone" : ["988888","888866","365656"]
{
"Company" : "ABC Company",
"Place" : {
"Bangalore" :{
"Address" : "MG Road",
"Phone" : ["988888","888866","365656"]
},
"Mubmai" : {
"Address" : "1st Main Road,West",
"Phone" : ["21212","123123","544455"]
}
}
}
现在,我想将JSON展平,以便获得多个JSON。对于上述示例,展平输出如下所示:
{
"Company" : "ABC Company",
"Place" : "Bangalore",
"Address" : "MG Road",
"Phone" : "988888"
},
{
"Company" : "ABC Company",
"Place" : "Bangalore",
"Address" : "MG Road",
"Phone" : "888866"
},
{
"Company" : "ABC Company",
"Place" : "Bangalore",
"Address" : "MG Road",
"Phone" : "365656"
},
{
"Company" : "ABC Company",
"Place" : "Mubmai",
"Address" : "1st Main Road,West",
"Phone" : "21212"
},
{
"Company" : "ABC Company",
"Place" : "Mubmai",
"Address" : "1st Main Road,West",
"Phone" : "123123"
},
{
"Company" : "ABC Company",
"Place" : "Mubmai",
"Address" : "1st Main Road,West",
"Phone" : "544455"
}
JSON结构并不是固定不变的,它可能会改变,但扁平化仍然必须以同样的方式工作。在Node.js中有什么方法可以做到这一点吗?好了:()
你会得到这个的
[{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"988888"},{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"888866"},{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"365656"},{"Company":"ABC Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"21212"},{"Company":"ABC Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"123123"},{"Company":"ABC
Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"544455"}]
如果JSON结构发生变化,那么我看不出展平它的逻辑是如何相同的。这不仅仅是展平。您还可以展开/迭代数组。如果JSON中有多个数组,该怎么办。“有什么最好的方法吗?”您尝试过哪些方法?使用
JSON.parse
,isPlainObject
,hasOwnProperty
,递归
。现在开始挖掘。这假设OP正在使用Jquery,问题中没有指定这一点,因为他正在使用Node。
console.log(JSON.stringify(t)
[{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"988888"},{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"888866"},{"Company":"ABC Company","Place":"Bangalore","Address":"MG Road","Phone":"365656"},{"Company":"ABC Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"21212"},{"Company":"ABC Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"123123"},{"Company":"ABC
Company","Place":"Mubmai","Address":"1st Main Road,West","Phone":"544455"}]