ztree 后台返回json数据的拼接
@红薯 你好,想跟你请教个问题:
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你看下zTree上面的一个例子
它是这样的
var zNodes =[
其实可以使用simple数据格式啊,然后使用其它类库直接将对象序列化为json对象就可以了,没必要自己写递归来构造..