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. Servlet过滤器——使用过滤器禁止浏览器缓存页面

    1.概述 IE缓存虽然能提高已储存网站的访问速度,但是过度的IE缓存会影响浏览器的响应速度.同时还可能为网站的运行带来一些不必要的麻烦.例如:可能会因为浏览器缓存的应用,而导致Web服务器不能准确的计 ...

  2. input在苹果浏览器下变成圆角的解决方案

    复制代码代码如下: .form-actions input{ ... -webkit-appearance: none; } 更新到iPhone一看,真爽,问题解决了.

  3. Skype无法显示登录界面

    Skype升级之后突然抽风,双击运行程序之后,输入用户名和密码的窗口都没了,截图如下(本机为Windows 7 32bit版本): 卸载重新安装,也无济于事.删除注册表中的Skype的相关信息后问题依 ...

  4. HUNNU11342:Chemistry(模拟)

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11342 Problem description The ch ...

  5. Cocos2dx中Plugin-X 在android下的整合

    直接拉plugin-x中的jar包导入到Eclipse中就可以.用这么麻烦的工具干嘛.

  6. ios点击产生波纹效果

    ios点击产生波纹效果 by 伍雪颖 - (void)viewDidLoad { [super viewDidLoad]; RippleView = [[UIView alloc] initWithF ...

  7. XML wsdl soap xslt xsl ide

    XML wsdl soap  xslt xsl ide 作者Attilax ,  EMAIL:1466519819@qq.com  来源:attilax的专栏 地址:http://blog.csdn. ...

  8. libevent简单分析

    一看名字就知道是围绕eventloop转的. 那首先肯定是eventloop是个什么?一般都是IO事件,timer事件的管理器. 那首先看如何new出来一个eventloop: 1.因为libeven ...

  9. Delphi 10.1 柏林更新内容简译

    新的 SDKTransform.exe 支持转换 Object-C 或 C++ 头文件到Delphi. 修改了对话框的接口,分成了同步和异步两种: http://blog.qdac.cc/?p=380 ...

  10. 如何获取本地html文件的标题

    本文用于提取本地网页的标签元素如<TITLE></TITLE>,<IMG>,<A></A>...的内容,非常实用于批量文件的操作,这是按一般 ...