`

json 转 树形

    博客分类:
  • js
 
阅读更多
  1. 转载 :http://rockyuse.iteye.com/blog/1541308
  2. /** 
  3.  * json格式转树状结构 
  4.  * @param   {json}      json数据 
  5.  * @param   {String}    id的字符串 
  6.  * @param   {String}    父id的字符串 
  7.  * @param   {String}    children的字符串 
  8.  * @return  {Array}     数组 
  9.  */  
  10. function transData(a, idStr, pidStr, chindrenStr){  
  11.     var r = [], hash = {}, id = idStr, pid = pidStr, children = chindrenStr, i = 0, j = 0, len = a.length;  
  12.     for(; i < len; i++){  
  13.         hash[a[i][id]] = a[i];  
  14.     }  
  15.     for(; j < len; j++){  
  16.         var aVal = a[j], hashVP = hash[aVal[pid]];  
  17.         if(hashVP){  
  18.             !hashVP[children] && (hashVP[children] = []);  
  19.             hashVP[children].push(aVal);  
  20.         }else{  
  21.             r.push(aVal);  
  22.         }  
  23.     }  
  24.     return r;  
  25. }  
  26.   
  27. var jsonData = eval('[{"id":"4","pid":"1","name":" 大家电"},{"id":"5","pid":"1","name":"生活电器"},{"id":"1","pid":"0","name":"家用电 器"},{"id":"2","pid":"0","name":"服饰"},{"id":"3","pid":"0","name":"化妆"}, {"id":"7","pid":"4","name":"空调"},{"id":"8","pid":"4","name":"冰箱"}, {"id":"9","pid":"4","name":"洗衣机"},{"id":"10","pid":"4","name":"热水器"}, {"id":"11","pid":"3","name":"面部护理"},{"id":"12","pid":"3","name":"口腔护理"}, {"id":"13","pid":"2","name":"男装"},{"id":"14","pid":"2","name":"女装"}, {"id":"15","pid":"7","name":"海尔空调"},{"id":"16","pid":"7","name":"美的空调"}, {"id":"19","pid":"5","name":"加湿器"},{"id":"20","pid":"5","name":"电熨斗"}]');  
  28.   
  29. var jsonDataTree = transData(jsonData, 'id''pid''chindren');  
  30. console.log(jsonDataTree);  
  31. //[{"id":"1","pid":"0","name":" 家用电器","chindren":[{"id":"4","pid":"1","name":"大家电","chindren": [{"id":"7","pid":"4","name":"空调","chindren": [{"id":"15","pid":"7","name":"海尔空调"},{"id":"16","pid":"7","name":"美的空 调"}]},{"id":"8","pid":"4","name":"冰箱"},{"id":"9","pid":"4","name":"洗衣 机"},{"id":"10","pid":"4","name":"热水器"}]},{"id":"5","pid":"1","name":"生活电 器","chindren":[{"id":"19","pid":"5","name":"加湿器"}, {"id":"20","pid":"5","name":"电熨斗"}]}]},{"id":"2","pid":"0","name":"服 饰","chindren":[{"id":"13","pid":"2","name":"男装"}, {"id":"14","pid":"2","name":"女装"}]},{"id":"3","pid":"0","name":"化 妆","chindren":[{"id":"11","pid":"3","name":"面部护理"}, {"id":"12","pid":"3","name":"口腔护理"}]}] 
分享到:
评论

相关推荐

    json与树的相互转换

    对于更复杂的JSON结构,可以使用`JObject`,`JArray`等JToken类构建或解析JSON树。 `JsonViewer.exe`可能是一个用于查看和操作JSON数据的工具,它可以将JSON数据以树形结构展示,便于开发者直观地理解JSON结构。这...

    java转目录树json

    在Java开发中,将目录结构转换为JSON格式是一种常见的需求,特别是在构建文件管理系统、Web应用或者需要在前端展示树形目录结构时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和...

    Java递归算法构造JSON树形结构

    Java 递归算法构造 JSON 树形结构 Java 递归算法构造 JSON 树形结构是指通过 Java 语言使用递归算法将数据库中的菜单表构建成树形的 JSON 格式发送给第三方。这种方法可以将复杂的树形结构数据转换成易于理解和处理...

    读取JSON格式转为DevExpress TreeList 树形(晨曦CZB)

    本文将详细讲解如何从JSON格式的数据读取并转换为DevExpress TreeList的树形结构,以实现数据的高效展示。我们将使用C#编程语言来实现这一过程。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换...

    ajax获取嵌套JSON,树形控件显示

    这个“ajax获取嵌套JSON,树形控件显示”的示例主要涉及如何通过Ajax获取嵌套的JSON数据,并将其适配到ZTree的格式,以便在页面上以树形结构展示。 首先,我们需要理解JSON(JavaScript Object Notation)是一种轻...

    把扁平化的数据转换成树形结构的JSON

    例如,一个简单的树形JSON结构可能如下所示: ```json { "name": "根节点", "children": [ { "name": "子节点1", "children": [ {"name": "孙子节点1"}, {"name": "孙子节点2"} ] }, { "name": "子节点2...

    树形结构文件转Json格式

    本项目主要涉及的是将“树形结构文件”转换为JSON格式,这对于处理层次化数据尤其有用。下面我们将详细探讨树形结构、JSON格式以及如何进行这种转换。 首先,让我们理解什么是树形结构。在计算机科学中,树形结构是...

    遍历json显示树形菜单

    在IT领域,尤其是在前端开发中,经常需要处理JSON(JavaScript Object Notation)数据,并将其以树形结构展示出来,这通常用于构建导航菜单、组织层级数据等。"遍历json显示树形菜单"是一个常见的需求,涉及到的主要...

    一种基于树形结构的Sql结果集向Json数据的转换算法.pdf

    本文提出了一种基于树形结构的Sql结果集向Json数据的转换算法,旨在解决关系型数据库中树结构数据与Web应用中Json数据格式不一致的问题。该算法将Sql结果集转换为Json数据,以满足Web应用中树控件的需求。 一、树形...

    flex json转无限树形加单选框并获得选中子项 自动展开

    "flex json转无限树形加单选框并获得选中子项 自动展开"这一主题涉及到多个技术点,包括JSON数据处理、无限层级树形结构的构建、单选框(checkbox)的实现以及节点的自动展开功能。下面将详细讲解这些知识点。 1. ...

    json转为树形数据.zip

    有时候,我们需要将后台传回的JOSN格式展示给用户看,这时需要将json格式的数据转为树结构所需要的数据结构,如图var data={ "code": 0, "msg": "操作成功", "data": { "access_token": "6b858817-...

    flex json转无限树形加单选框并获得选中子项

    综上所述,实现“flex JSON转无限树形加单选框并获得选中子项”涉及到对Flex组件的深入理解和JSON数据的处理。这需要开发者具备良好的数据结构理解能力,以及对事件处理和组件交互的掌握。完成这样的功能不仅提升了...

    JS+css+Json的树形结构

    在IT领域,尤其是在前端开发中,"JS+css+Json的树形结构"是一个常见的应用场景。这个主题涉及到了JavaScript、CSS以及JSON数据格式,这些都是构建交互式网页的重要元素。下面将详细阐述这些知识点。 首先,...

    把扁平化的数据转换成树形结构的JSON,把树形JSON扁平化.zip

    例如,从扁平化的数据转换成树形结构的JSON,以及将树形JSON再扁平化,这两个过程在数据处理、数据库操作和前端展示等方面都有广泛的应用。 标题和描述提及的"把扁平化的数据转换成树形结构的JSON,把树形JSON扁平...

    jsonview,转换json格式

    2. **JSONView的使用**:安装JSONView扩展后,当浏览器加载到JSON格式的网页时,它会自动格式化JSON数据,以树形结构显示,用户可以方便地展开和折叠节点查看内容。 3. **数据转换**:JSONView可能支持将JSON数据...

    JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现

    "JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现" JSON复杂数据处理之Json树形结构数据转Java对象并存储到数据库的实现是指将JSON复杂数据处理后的数据转换为Java对象,并将其存储到数据库中。...

    java的xml和json相互转换工具类,亲测直接用

    首先,XML是一种结构化的数据表示方式,它以树形结构存储数据,易于人类阅读和编写,同时也易于机器解析和生成。JSON则是一种轻量级的数据交换格式,它基于JavaScript语法,但独立于语言,提供了更简洁的数据表示...

    Unity 将Excel 转换为Json,可处理嵌套列表

    Unity 将Excel 数据转换为Json 数据使用,可以支持列表嵌套。

    js 解析 json 生成树

    在JavaScript中,解析JSON并生成树形结构是一种常见的需求,特别是在构建前端应用或者处理层级数据时。本示例中提到的“js 解析 json 生成树”是一个将JSON数据转换为可交互的树形结构的过程。这个过程通常涉及到...

Global site tag (gtag.js) - Google Analytics