public class TreeNode {

private long nodeId;

    private String nodeName;

    private long fatherNodeId;



    public TreeNode() {

    }

    public TreeNode(long nodeId, String nodeName, long fatherNodeId) {

        this.nodeId = nodeId;

        this.nodeName = nodeName;

        this.fatherNodeId = fatherNodeId;

    }

    public long getNodeId() {

        return nodeId;

    }

    public void setNodeId(long nodeId) {

        this.nodeId = nodeId;

    }

    public String getNodeName() {

        return nodeName;

    }

    public void setNodeName(String nodeName) {

        this.nodeName = nodeName;

    }

    public long getFatherNodeId() {

        return fatherNodeId;

    }

    public void setFatherNodeId(long fatherNodeId) {

        this.fatherNodeId = fatherNodeId;

    }

}

public class ConstructorTree {

    StringBuffer json = new StringBuffer();

    /**

     * 

     * @Title: getJson

     * @Description: 调用接口

     * @author Administrator

     * @param list

     * @param node

     * @return

     */

    public String getJson(List<TreeNode> list, TreeNode node) {

        json = new StringBuffer();

        constructorJson(list, node);

        String jsonDate = json.toString();

        return ("[" + jsonDate + "]").replaceAll(",]", "]");





    }



    /**

     * 

     * @Title: constructorJson

     * @Description: 构建json树

     * @author Administrator

     * @param list

     * @param treeNode

     */

    @SuppressWarnings("unchecked")

    public void constructorJson(List<TreeNode> list, TreeNode treeNode) {

        if (hasChild(list, treeNode)) {

            json.append("{id:");

            json.append(treeNode.getNodeId());

            json.append(",text:");

            json.append(treeNode.getNodeName());

            json.append(",children:[");

            List<TreeNode> childList = getChildList(list, treeNode);

            Iterator iterator = childList.iterator();

            while (iterator.hasNext()) {

                TreeNode node = (TreeNode) iterator.next();

                constructorJson(list, node);

            }

            json.append("]},");

        } else {

            json.append("{id:");

            json.append(treeNode.getNodeId());

            json.append(",text:");

            json.append(treeNode.getNodeName());

            json.append("},");

        }

    }



    /**

     * 

     * @Title: getChildList

     * @Description: 获得子节点列表信息

     * @author Administrator

     * @param list

     * @param node

     * @return

     */

    public List<TreeNode> getChildList(List<TreeNode> list, TreeNode node) {

        List<TreeNode> li = new ArrayList<TreeNode>();

        Iterator it = list.iterator();

        while (it.hasNext()) {

            TreeNode n = (TreeNode) it.next();

            if (n.getFatherNodeId() == node.getNodeId()) {

                li.add(n);

            }

        }

        return li;

    }



    /**

     * 

     * @Title: hasChild

     * @Description: 推断是否有子节点

     * @author Administrator

     * @param list

     * @param node

     * @return

     */

    public boolean hasChild(List<TreeNode> list, TreeNode node) {

        return getChildList(list, node).size() > 0 ? true : false;

    }

}

获得树形json串的更多相关文章

  1. iOS 字典或者数组和JSON串的转换

    在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...

  2. [原创] C# dynamic拼接Json串

    using Newtonsoft.Json; 之前拼接两个json串,是用的这样的代码 , json1.Length - ); json2 = json2.Insert(json2 - , tmp); ...

  3. spring入门(七)【springMVC返回json串】

    现在多数的应用为了提高交互性多使用异步刷新,即在不刷新整个页面的情况下,只刷新局部,局部刷新用得最多就是ajax,ajax和后台进行交互的数据格式使用的最多的是JSON,这里简单描述,在springm ...

  4. java对象与json串互转

    1:java对象与json串转换: java对象—json串: JSONObject JSONStr = JSONObject.fromObject(object); String str = JSO ...

  5. spring 4.x下让http请求返回json串

    当前很多应用已经开始将响应返回为json串,所以基于springframework框架开发的服务端程序,让响应返回json字符串成为了一种常用手段. 这里介绍一下如何在spring-MVC框架下方便快 ...

  6. curl运行json串,代理转发格式

    curl -b 'uin=o0450654733; skey=@tq9xjRvYy' -H "Content-Type: application/json" -X POST -d ...

  7. 使用FastJSON,将对象或数组和JSON串互转

    Fastjson,是阿里巴巴提供的一个Java语言编写的高性能功能完善的JSON库.其开源的下载网址为:https://github.com/AlibabaTech/fastjson. 示例代码如下: ...

  8. 利用QJSON将FDQuery转成JSON串

    服务器要支持Http协议,打算采用Http+JSON的方式来交换数据.一开始考虑使用superobject,因为以前使用比较多,比较熟悉. 代码如下: class function FDQueryTo ...

  9. 怎么解析json串在.net中

    以前知道一种解析json串的方法,觉得有点麻烦.就从别的地方搜到了另一种 string json = vlt.getlist(); JObject jo = JObject.Parse(json); ...

随机推荐

  1. java 变长參数使用原则

    1.java变长參数用...表示,如Print(String... args){  ... }; 2.假设一个调用既匹配一个固定參数方法.又匹配一个变长參数方法,则优先匹配固定參数的方法 3.假设一个 ...

  2. DButils工具类能够用来获取数据库连接向数据库插入更新删除对象2

    package com.ctl.util; import java.awt.Color; import java.awt.Font; import java.awt.Insets; import ja ...

  3. [置顶] 应广大童鞋的要求提供一个封装模块,直接和ADB 服务进程交互

    很多童鞋在用ADB 的时候都是直接启动ADB 的进程,然后通过管道的方式获取输出,这样多个线程同时使用ADB 的时候任务管理器一闪一闪的,是不是很不爽啊,原先介绍过可以直接和ADB 服务进程通信,不用 ...

  4. uva 699

    #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #i ...

  5. 使用perf生成Flame Graph(火焰图)

      具体的步骤参见这里: <flame graph:图形化perf call stack数据的小工具>   使用SystemTap脚本制作火焰图,内存较少时,分配存储采样的数组可能失败,需 ...

  6. TDD测试驱动的javascript开发(3) ------ javascript的继承

    说起面向对象,人们就会想到继承,常见的继承分为2种:接口继承和实现继承.接口继承只继承方法签名,实现继承则继承实际的方法. 由于函数没有签名,在ECMAScript中无法实现接口继承,只支持实现继承. ...

  7. cuzysdk购物模块 36kr+本期背景图

    说好的剧透,虽然来的稍微晚不少 cuzysdk(www.cuzy.com) 是一个手机淘宝客sdk,通过使用cuzy,可以获取taobao平台的推广商品数据,移动开发者把推广的商品数据呈现给用户,用户 ...

  8. 分分钟教会你使用HTML写Web页面

    在学习怎样使用HTML编写网页之前,我们必须先搞清楚什么是HTML?当然了不是系统的给大家介绍HTML的前世今生,假设对其身世感兴趣的小伙伴能够去问度娘,她会给你想要的答案. 所谓HTML,就是我们常 ...

  9. 我工作这几年(五)-- Android学习4.5月总结(一)

    今年是对我个人成长和程序员生涯冲击很大的一年. 有了小孩之后,家里发生了太多太多的事情,现在已经慢慢步入正轨,还好撑过来了,当然还有老婆.岳父岳母.我爸妈.还有好多关心支持我的人的帮助.在各种挫折交替 ...

  10. Swift - 滑块(UISlider)的用法

    1,滑块的创建 1 2 3 4 5 6 var slider=UISlider(frame:CGRectMake(0,0,300,50)) slider.center=self.view.center ...