Javascript 将带有嵌套对象的JSON转换为JS中的列表数组

Javascript 将带有嵌套对象的JSON转换为JS中的列表数组,javascript,json,Javascript,Json,如何从JSON数据中嵌套对象 { "title": "Sub sub cat", "url": "sub_sub_cat", "parent": { "title": "Sub сat", "url": "sub_cat", "parent": { "title": "Cat", "url": "cat", } } } 转换为如下所示的对象数组: [ {"title":

如何从JSON数据中嵌套对象

{
    "title": "Sub sub cat",
    "url": "sub_sub_cat",
    "parent": {
      "title": "Sub сat",
      "url": "sub_cat",
      "parent": {
        "title": "Cat",
        "url": "cat",
      }
    }
}
转换为如下所示的对象数组:

[   
    {"title": "Sub sub cat","url": "sub_sub_cat"},
    {"title": "Sub сat","url": "sub_cat"},
    {"title": "Cat","url": "cat"}
]
嵌套对象的级别可能不同 我试图解决它,但不是我需要的

使用递归:

var原始数据={
“标题”:“子类别”,
“url”:“sub_sub_cat”,
“家长”:{
“标题”:“分条款”,
“url”:“sub_cat”,
“家长”:{
“标题”:“猫”,
“url”:“cat”,
}
}
};
/*
*第一个函数创建一个空数组,启动递归并返回它
*/
函数转换数据(数据){
var新_数据=[];
convertDataAux(数据、新数据);
返回新的_数据;
}
/*
*这个函数递归地将相关数据添加到数组“n”中
*/
函数convertdataux(d,n){
if(d&&d.title&&d.url){n.push({title:d.title,url:d.url});}
Object.keys(d).forEach(函数(键){
如果(键!='title'&&key!='url'){
convertDataAux(d[键],n);
}
});
}
//现在,只需调用第一个函数

document.body.innerHTML=JSON.stringify(convertData(原始数据))
json代码的父值是什么,即
parent.title
etc请看一看,通读一下,特别是递归将非常有效