2 aya001001 aya001001 于 2016.02.10 22:47 提问

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
devmiao   Ds   Rxr 2016.02.11 07:38
aya001001
aya001001 @苏小喵,这个是纯的json转字符串的方法
2 年多之前 回复
aya001001
aya001001   2016.02.11 08:25

@苏小喵,这个是纯的json转字符串的方法

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
nodjs踩过的数组转json的坑
参考文章https://www.cnblogs.com/ningvsban/p/3660654.htmlhttps://www.cnblogs.com/youfeng365/p/5846771.html看了这两篇文章,才知道对象和数组是两个东西没学过面向对象,对对象这个名词还是很生疏
Node实现csv转json(json文件未导出)
Node.js创建第一个应用 1.node.js输出“hello,world” ,此目录下创建server.Js 在你项目的根目录下创建一个叫 server.js 的文件,并写入以下代码: var http = require('http');   http.createServer(function (request, response) {            // 发送
用nodejs实现省,市,区对象数组与数组对象的转换
用nodejs实现省,市,区对象数组与数组对象的转换. 在json文件夹下面的city_array.json放入相应的城市对象数组信息,然后用命令node change_array.js就可以实现数组转换为对象,输出的信息在json/city_obj.json中可以看到。
js将有父子关系的数据转换成树形结构数据
接口返回的数据是像allRes这样的数组:let allRes = [ { resourcesId: 4, resName: "删除角色", resParentId: 2 }, { resourcesId: 3, resName: "编辑角色", resParentId: 1 }, { resourcesId: 2,
nodejs转json数据处理
son格式被越来越多的开发者说青睐,我们常常在接口定义时使用这种格式参数进行数据交换. 今天主要给大家从繁到简的几个node.js下使用的提交 json个数参数的方式方法. 下面示例中出现的参数都做了处理,拷贝代码后需要更改这些参数同时自己写一个接收json格式的api,请求成功后再返回json格式 (一) node.js 原生自带http模块,可以解决基于http协议下的请求及回发
nodejs json 解析
arrMongoDatabases={ "blog":["php","test"], "study":["java","mongo"] } var arrMongodb = JSON.stringify(arrMongoDatabases); var arr= JSON.parse(arrMongodb); for(db in arr){ var db = db;//ge
JS 获取JSON 数据,想让JSON 如何变成 key,和vale 各一组的数组啊
var arr=new Array();     var arr1=new Array();     var j=0;     for (var i in formdata){         //alert(i);         arr[j]=i;         arr1[j]=formdata[i];         j++;     }
根据数据的父子关系创建树形结构并实现遍历
在实际开发中,有一种数据是类型,它存在父子关系,比如京东商城中,商品的分类有家用电器和服饰鞋帽,家用电器下边有大家电和家用电子,然后他们下边还有子类。而且这类父子关系有时深度是不确定的,本文用下面的方法,将所有类似分类的结点创建成一棵树并遍历打印他们。 1.结点要实现下面的接口: package subAndsup; import java.util.List; /**  * add
ztree将后台传过来的json对象封装为子父集关系的json数组
1、将后台传过来的数据封装 var initDataValue = function (resp) {             var initDataVO = {};             initDataVO.value = [];             var regionDataList = resp.data || [];             $.each(region
zTree使用本地json数据如何确定父子节点关系
是通过id与pid,只要json数据中id与pid能够形成父子关系,就能形成一棵树 当然如果要判断父子关系也是用id与pid