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. ArcGIS 10.3 for Desktop新特性介绍

    ArcGIS 10.3是一个完整公布的ArcGIS平台,它包含新的产品(ArcGIS Pro),针对10.2版本号产品进行了功能增强和稳定性的改进. ArcGIS 10.3 for Server新特性 ...

  2. C++学习之路—多态性与虚函数(一)利用虚函数实现动态多态性

    (根据<C++程序设计>(谭浩强)整理,整理者:华科小涛,@http://www.cnblogs.com/hust-ghtao转载请注明) 多态性是面向对象程序设计的一个重要特征.顾名思义 ...

  3. Delphi安装NT服务程序时(不出现提示信息)

    如果我们不加上"/silent",那么Delphi在安装和卸载NT服务程序时候,都会出现一个提示信息,不希望出现这个提示信息,那么使用如下命令: 1,安装:“你的nt程序 /ins ...

  4. Scanner类及正则表达式

    import java.util.Scanner; public class ScannerToString { public static void main(String[] args) { Sc ...

  5. CSS样式渐变写法

    .first_tree li:hover{ color:#FFF; cursor:pointer; background-color:#ff8a00; background: -ms-linear-g ...

  6. 被忽视的TWaver功能(1)

    应客户需求写个Demo,Demo中包括一些经常使用的功能.包括解析JSON数据生成TWaver中的网元和连线.网元右下角带上不同标识的小图标,连线须要是二次曲线.弹出菜单和信息板.跟大家分享下.先上图 ...

  7. 不同数据库oracle mysql SQL Server DB2 infomix sybase分页查询语句

    在不同数据库中的使用的分页查询语句: 当前页:currentpage 页大小:pagesize 1. Oracle数据库 select * from (select A.*,rownum rn fro ...

  8. 【Dev Club 分享】腾讯验证码的十二年

    源:http://mp.weixin.qq.com/s?__biz=MzA3NTYzODYzMg==&mid=2653578147&idx=3&sn=94a8f8f8b4a23 ...

  9. SpringMVC批量上传

    @RequestMapping(value = "/upload") public String handleFormUpload(MultipartHttpServletRequ ...

  10. 怎样从ext3升级到ext4?

    Ext4 文件系统提供了更佳的性能和可靠性,具有了更为丰富的功能,那么,怎样从ext3升级到ext4呢? 首先,我们须要保证系统支持ext4,一般来说,内核版本号在2.6.28及以上的版本号才支持ex ...