浪子神剑 2016-02-10 14:47 采纳率: 0%
浏览 2619
已结题

nodejs json怎么转变为这种父子关系的数组呢?

我想把这个json转变为如下的父子关系的数组,使用js中的递归要怎么操作呢?
json格式:

 {
    "fruit": [
        {
            "name": "水果" 
        },
        {
            "jiangguolei": [
                {
                    "name": "浆果类"
                },
                {
                    "caomei": "草莓"
                },
                {
                    "lanmei": "蓝莓"
                }
            ]
        },
        {
            "ganjulei": [
                {
                    "name": "柑橘类"
                },
                {
                    "miju": "蜜橘"
                },
                {
                    "shatangju": "砂糖橘"
                }
            ]
        },
        {
            "other": "其它"
        }
    ]
}

转换后,相对应的父子关系的数组如下:

 [
'fruit',
'fruit/jiangguolei',
'fruit/jiangguolei/caomei',
'fruit/jiangguolei/lanmei',
'fruit/ganjulei',
'fruit/ganjulei/miju',
'fruit/ganjulei/shatangju',
'fruit/other',
]

这是我用递归写的,不行,请指教:

 function isArray(obj) {  
  return Object.prototype.toString.call(obj) === '[object Array]';   
}

function isObject(obj) {  
  return Object.prototype.toString.call(obj) === '[object Object]'; 
}

function changeArr(json, fpath){
    var tmpArr = [];
    for ( var p in json ){
        if(p !== 'name'){
            tmpArr.push(fpath + '/' + p);
        }

        if(isArray(json[p])){
            // fpath = p;
            changeArr(json[p], p);
        }else if(isObject(json[p])){
            changeArr(json[p], p);
        }else{

        }

    }
    return tmpArr;
}
console.log(changeArr(file, ''));

  • 写回答

2条回答 默认 最新

  • devmiao 2016-02-10 23:38
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题