【04】淘淘商城-Service层递归拼装ItemCatResult详解
2017-08-26 20:53
260 查看
拼装结果
结果
分析
仔细看图,整个json分为三层:前两层由u、n、i三个元素组成,其中u、n为String类型,i为集合类型
而最里面的一层(叶子节点),仅仅是由String字符串组成的
所以我们要对这两形式区分对待
区分叶子节点
如图,首先判断是否为叶子节点,如果是叶子节点,则只有一个String属性,所以我们直接拼装出一个相关要求的字符串,添加到resutList中即可。
区分最外层节点
看图我们了解到,两层之间的区别有两点:
n:
最外层n为使用id和name拼接出来的<a>标签
中间层n仅仅使用id拼接出来的url地址
i:
最外层i为对应中间层的集合组成
中间层i中仅仅存储了String的集合
因为我们在封装的时候,i属性仅仅定义为list集合,没有指定其集合,所以可以忽略i属性的不同,这样我们就仅仅需要区分n属性就可以了。
如图,仅仅需要在封装name属性时,区别对待即可。
流程
最后我们再走一遍流程看看好吧,我已经尽力了,虽然有点乱,但是自己试着画一下流程图,就能大概了解了。
相关文章推荐
- 04-BGP属性详解--Next-hop
- 图、例详解DNS递归和迭代查询原理及过程
- [MyBatis]-resultMap结果映射集详解
- startActivityForResult用法详解-转自Ruthless
- 详解Javascript函数声明与递归调用
- JAVAWEB开发之Struts2详解(一)——Struts2框架介绍与快速入门、流程分析与工具配置以及Struts2的配置以及Action和Result的详细使用
- 递归详解(斐波拉契和汉诺塔应用)
- PHP+JS无限级可伸缩菜单详解(递归方法)
- struts2的result-type详解
- MySQL C API mysql_free_result() 详解
- iOS回顾笔记(04) -- UIScrollView的基本使用详解
- startActivityForResult用法详解
- startActivityForResult和setResult详解
- 详解C#中 Thread,Task,Async/Await,IAsyncResult的那些事儿
- startActivityForResult用法详解
- 折半查找和递归折半查找详解(二分法查找,递归二分法查找)
- Java虚拟机详解04----GC算法和种类【重要】
- Mybatis笔记四:Mybatis中的resultType和resultMap查询操作实例详解
- Spring MVC整理系列(04)————Spring MVC配置解析及整合SprinSpring MVC之@RequestParam @RequestBody @RequestHeader 等详解
- startActivityForResult用法详解