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

问题描述

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, ''));

解决方案

http://www.cnblogs.com/wanghetao/p/4148989.html

解决方案二:

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

时间: 2024-11-01 01:01:47

对象-nodejs json怎么转变为这种父子关系的数组呢?的相关文章

js对象和json对象互相转换的问题

  我们在进行系统开发时,特别是在用到ajax技术开发时经常会遇到JS对象和JSON格式数据的相互转换d的问题.其实,也就是两个问题:JS对象转换成为JSON格式数据.JSON格式数据转换成为JS对象 目前的项目数据交互几乎都用JQuery,所以处理流程是:前端页面数据->JS对象->jQuery提交->python处理,另外一种就是倒过来.python肯定不能直接处理JS对象数据,所以要把JS对象转换成为python能处理的一种数据格式(通常是字典dict),同样,python取数据反

js对象转json数组的简单实现案例

 本篇文章主要是对js对象转json数组的简单实现案例进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 代码如下: function obj2Str(obj){  switch(typeof(obj)){  case 'object':  var ret = [];  if (obj instanceof Array){  for (var i = 0, len = obj.length; i < len; i++){  ret.push(obj2Str(obj[i]));  }  re

Gson对Java嵌套对象和JSON字符串之间的转换

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识,请参考以下内容:http://json.org/json-zh.html 在服务器和客户端之间使用JSON数据格式进行通信,经常会涉及到JAVA对象和JSON字符串之间的转换.通常,我们可以使用一些JSON解析工具,例如:Gson,FastJson等.当然,我们也可以手动解析,只是会比较繁琐. 下面

Android利用Gson实现对象和Json数据的相互转换

MainActitity如下: package cc.test; import android.app.Activity; import android.os.Bundle; /** * Demo描述: * 利用Gson实现对象和Json数据的相互转换 * * Demo描述: * 通过一个网络请求,获取JSON数据 * * 注意: * 1 网络请求的参数是JSON格式的数据 * 2 请求结果返回的亦是JSON格式的数据 * */ public class MainActivity extends

C# 对象数据转换Json帮助类 JsonHelp

C# 对象数据转换Json帮助类 JsonHelp using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControl

对象被json格式化时,hibernate 延迟加载将所有对象都查了出来。

问题描述 对象被json格式化时,hibernate 延迟加载将所有对象都查了出来. 对象被json格式化时,hibernate 延迟加载将所有对象都查了出来, 如何在json格式化时不适用get方式? 解决方案 在线等不知道有啥好的方法 解决方案二: jackson json,用于hibernate的懒加载对象级联关系的json解析 解决方案三: 你好! 如何这样的话如果我用到了延迟加载呢?有没有更好的办法?

nodejs JSON.parse在字符串转json的问题

问题描述 nodejs JSON.parse在字符串转json的问题 有没有人遇到过,当出现多层级的Json和字符串互转的情况会出现转换的json格式的 数据的内容变成[Object] 例如: { '1': [Object], '2': [Object], '3': [Object], '4': [Object], '5': [Object] } 暂时只发现nodejs里边的解析有问题,其他浏览器都正常. 解决方案 json2 转字符串问题 解决方案二: 还是应该检查你的JSON格式

JS对象与json字符串格式转换实例_javascript技巧

本文实例讲述了JS对象与json字符串格式转换的实现方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: <head>     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />     <title></title>     <script type="text/javascript"&g

使用Jackson来实现Java对象与JSON的相互转换的教程_java

一.入门Jackson中有个ObjectMapper类很是实用,用于Java对象与JSON的互换.1.JAVA对象转JSON[JSON序列化] import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonDemo { pub