ztree 后台返回json数据的拼接

发布于 2021-11-23 22:20:23 字数 5289 浏览 676 评论 2

@红薯 你好,想跟你请教个问题:

ztree 后台从webservece里面获取数据获取的数据类型是List<org>,org字段如下

  private String id;
  private String name;
  private String desc;
  List<Org> childOrg;

现在想递归List<org> 这个数据成Json格式,返回前台显示成树,求思路。

 List<Org> list  = null;
         DTAuthorityDataSourceFactory factory = new DTAuthorityDataSourceFactory();
         try {
             list =  factory.getAuthorityDataSource("http://172.16.60.143/manager/rpc/ws/orgserver/getAllOrgInfo?wsdl").getAllOrgs();
         } catch (MalformedURLException e) {
              e.printStackTrace();
         }
         if (list.size()==0)
            {
              return null;
            }
        String orgs = list.toString();
        Document doc = StringUtils.parthStringXml(orgs);
        NodeList orgNodes = doc.getChildNodes();
        resolveOrgXml(orgNodes, orgs);
        System.out.println(list.size());
        PrintWriter out = response.getWriter();
        String str = JSON.toJSONString(list);
        System.out.println(JSON.toJSONString(str));
        out.print(new String(str.getBytes("utf-8"),"8859_1"));
        out.close();
        return null;
     }
     private void resolveOrgXml(NodeList orgNodes, Org parentOrg)
      {
        if (orgNodes.getLength() == 0)
        {
          return;
        }
        for (int i = 0; i < orgNodes.getLength(); i++)
        {
          Node tempNode = orgNodes.item(i);
          NamedNodeMap tempNnm = tempNode.getAttributes();
          String tempId = tempNnm.getNamedItem("id").getNodeValue();
          String tempName = tempNnm.getNamedItem("name").getNodeValue();
          Node tempDescNode = tempNnm.getNamedItem("desc");
          Org org = new Org();
          org.setId(tempId);
          org.setName(tempName);
          if (tempDescNode != null)
          {
            org.setDesc(tempDescNode.getNodeValue());
          }
          if (parentOrg == null)
          {
            this.orgs.add(org);
          } else {
            List childOrg = parentOrg.getChildOrg();
            if (childOrg == null)
            {
              childOrg = new ArrayList();
              childOrg.add(org);
              parentOrg.setChildOrg(childOrg);
            } else {
              parentOrg.getChildOrg().add(org);
            }
          }
          NodeList childNodeList = tempNode.getChildNodes();
          if ((childNodeList == null) || (childNodeList.getLength() <= 0))
            continue;
          resolveOrgXml(childNodeList, org);
        }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

飘过的浮云 2021-11-26 20:22:24

你看下zTree上面的一个例子

它是这样的

 var zNodes =[

44            { id:1, pId:0, name:"父节点1 - 展开", open:true},
女中豪杰 2021-11-26 17:39:56

其实可以使用simple数据格式啊,然后使用其它类库直接将对象序列化为json对象就可以了,没必要自己写递归来构造..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文