返回顶部
首页 > 资讯 > 数据库 >树形JSON列表怎么利用java与mysql进行拼接
  • 797
分享到

树形JSON列表怎么利用java与mysql进行拼接

javamysqljson 2023-05-31 08:05:32 797人浏览 薄情痞子
摘要

树形JSON列表怎么利用java与mysql进行拼接?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。例如:[ { "name": 

树形JSON列表怎么利用java与mysql进行拼接?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

例如:

[ { "name": "商品目录", "pid": "-1", "id": "1", "children": [  {  "name": "日用品",  "pid": "1",  "id": "11",  "children": [   {   "name": "洗发水",   "pid": "11",   "id": "111",   "children": [    {     "name": "霸王",     "pid": "111",     "id": "1111",     "children": []    }   ]   }  ]  },  {  "name": "食品",  "pid": "1",  "id": "12",  "children": []  } ] }]

整体思路分为两步,第一步获取目录及其所有子目录,获取后的列表形式如下:

[ {"id":"1","pid":"-1","name":"商品目录"}, {"id":"11","pid":"1","name":"日用品"}, {"id":"12","pid":"1","name":"食品"}, {"id":"111","pid":"11","name":"洗发水"}, {"id":"1111","pid":"111","name":"霸王"}]

第二步,利用递归思想拼装该数据,拼装方法的工具类如下:

package *.*.*;import net.sf.json.JSONArray;import java.util.ArrayList;import java.util.List;public class TreeBuilder { List<node> nodes = new ArrayList<>(); public String buildTree(List<Node> nodes) {  TreeBuilder treeBuilder = new TreeBuilder(nodes);  return treeBuilder.buildJSONTree(); } public TreeBuilder() { } public TreeBuilder(List<Node> nodes) {  super();  this.nodes = nodes; } // 构建JSON树形结构 public String buildJSONTree() {  List<Node> nodeTree = buildTree();  JSONArray jsonArray = JSONArray.fromObject(nodeTree);  return jsonArray.toString(); } // 构建树形结构 public List<Node> buildTree() {  List<Node> treeNodes = new ArrayList<>();  List<Node> rootNodes = getRootNodes();  for (Node rootNode : rootNodes) {   buildChildNodes(rootNode);   treeNodes.add(rootNode);  }  return treeNodes; } // 递归子节点 public void buildChildNodes(Node node) {  List<Node> children = getChildNodes(node);  if (!children.isEmpty()) {   for (Node child : children) {    buildChildNodes(child);   }   node.setChildren(children);  } } // 获取父节点下所有的子节点 public List<Node> getChildNodes(Node pnode) {  List<Node> childNodes = new ArrayList<>();  for (Node n : nodes) {   if (pnode.getId().equals(n.getPid())) {    childNodes.add(n);   }  }  return childNodes; } // 判断是否为根节点 public boolean rootNode(Node node) {  boolean isRootNode = true;  for (Node n : nodes) {   if (node.getPid().equals(n.getId())) {    isRootNode = false;    break;   }  }  return isRootNode; } // 获取集合中所有的根节点 public List<Node> getRootNodes() {  List<Node> rootNodes = new ArrayList<>();  for (Node n : nodes) {   if (rootNode(n)) {    rootNodes.add(n);   }  }  return rootNodes; } public static class Node {  private String id;  private String pid;  private String name;  private List<Node> children;  public Node() {  }  public Node(String id, String pid, String name) {   super();   this.id = id;   this.pid = pid;   this.name = name;  }  public String getId() {   return id;  }  public void setId(String id) {   this.id = id;  }  public String getPid() {   return pid;  }  public void setPid(String pid) {   this.pid = pid;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  public List<Node> getChildren() {   return children;  }  public void setChildren(List<Node> children) {   this.children = children;  } }}

在Controller中的调用方法是:

 @RequestMapping("/bulidJsonTree") @ResponseBody public String buildJsonTree(httpservletRequest request) {  // 获取全部目录节点  List<Node> nodes = iGoodsDirSvc.getAllDirList();  // 拼装树形json字符串  String json = new TreeBuilder().buildTree(nodes);  return json; }

其中iGoodsDirSvc.getAllDirList()方法需要将取到的数据转为Node类型:

String hql = "select id as id,pId as pid,name as name from Directory";Query query = factory.getCurrentSession().createQuery(hql).setResultTransfORMer(Transformers.aliasToBean(TreeBuilder.Node.class));return query.list();

看完上述内容,你们掌握树形JSON列表怎么利用java与Mysql进行拼接的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网数据库频道,感谢各位的阅读!

您可能感兴趣的文档:

--结束END--

本文标题: 树形JSON列表怎么利用java与mysql进行拼接

本文链接: https://lsjlt.com/news/224347.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 树形JSON列表怎么利用java与mysql进行拼接
    树形JSON列表怎么利用java与mysql进行拼接?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。例如:[ { "name": ...
    99+
    2023-05-31
    java mysql json
  • Python进阶之利用+和*进行列表拼接
    目录引言对序列使用+和*由列表组成的列表嵌套列表创建的陷阱总结引言 python作为一款深受大家喜爱的语言,一直都在时代的风口浪尖吸引了很多的人学习。在我们学习python的过程中,...
    99+
    2023-05-16
    Python实现列表拼接 Python列表拼接方法 Python列表拼接 Python列表
  • 怎么在python中利用列表解析式拼接列表
    今天就跟大家聊聊有关怎么在python中利用列表解析式拼接列表,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,P...
    99+
    2023-06-14
  • Json数据怎么利用Java进行解析
    这期内容当中小编将会给大家带来有关Json数据怎么利用Java进行解析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体方法如下:{ "translation": [ "爱&...
    99+
    2023-05-31
    java json ava
  • 利用java怎么与web服务器进行链接
    本篇文章给大家分享的是有关利用java怎么与web服务器进行链接,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。java 与web服务器链接使用net.Socket类sock.g...
    99+
    2023-05-31
    java web服务器 ava
  • Android 开发中怎么利用TreeView实现一个多级树形列表
    今天就跟大家聊聊有关Android 开发中怎么利用TreeView实现一个多级树形列表,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。具体的实现思路参考下面的项目结构和具体代码:Ele...
    99+
    2023-05-31
    android treeview 多级树形列表
  • 利用python怎么对碑帖图片进行横向拼接
    本篇文章给大家分享的是有关利用python怎么对碑帖图片进行横向拼接,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python可以做什么Python是一种编程语言,内置了许多有...
    99+
    2023-06-07
  • SpringMVC中的json数据怎么利用controller进行接收
    SpringMVC中的json数据怎么利用controller进行接收?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.jsp页面发送ajax的post请求:functio...
    99+
    2023-05-31
    springmvc controller json
  • 序列算法怎么利用Java进行合并
    这期内容当中小编将会给大家带来有关序列算法怎么利用Java进行合并,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。问题描述输入:序列A<a0,a1,a2,...aq,aq+1,aq+2,...,ar&...
    99+
    2023-05-31
    java ava
  • json格式的文件怎么利用java进行导出
    json格式的文件怎么利用java进行导出?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。生成json文件代码:import java.io.File;impor...
    99+
    2023-05-31
    java json ava
  • java中的json怎么利用post请求进行发送
    这篇文章给大家介绍java中的json怎么利用post请求进行发送,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。方法一:package main.utils;import java.io.*;import java.n...
    99+
    2023-05-31
    java post json
  • 怎么利用Java连接Hadoop进行编程
    今天小编给大家分享一下怎么利用Java连接Hadoop进行编程的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实验环境hado...
    99+
    2023-07-02
  • 利用java怎么对oracle或mysql数据库进行连接
    这篇文章给大家介绍利用java怎么对oracle或mysql数据库进行连接,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体方法如下:package com.nuo.test.Connection;import jav...
    99+
    2023-05-31
    java oracle mysql
  • postgresql数据库怎么利用Java进行连接
    这篇文章给大家介绍postgresql数据库怎么利用Java进行连接,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.下载驱动jar2.导入jar包新建lib文件夹,将下载的jar驱动包拖到文件夹中。将jar驱动包添加...
    99+
    2023-05-31
    java postgresql gr
  • 利用mybatis怎么将表与对象进行关联
    本篇文章给大家分享的是有关利用mybatis怎么将表与对象进行关联,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。所需要用到的其他工具或技术:项目管理工具 : Maven测试运行...
    99+
    2023-05-31
    mybatis
  • JAVA中的HTTPS接口怎么利用HttpClient进行调用
    JAVA中的HTTPS接口怎么利用HttpClient进行调用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。为了避免需要证书,所以用一个类继承DefaultHttpClient...
    99+
    2023-05-31
    java httpclient https
  • 利用java怎么将文件与byte进行转换
    这期内容当中小编将会给大家带来有关利用java怎么将文件与byte进行转换,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Java可以用来干什么Java主要应用于:1. web开发;2. Android开发...
    99+
    2023-05-30
    java byte
  • Java中的表格怎么利用表格模型进行创建
    本篇文章给大家分享的是有关Java中的表格怎么利用表格模型进行创建,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。利用表格模型创建表格   &nbs...
    99+
    2023-05-31
    java ava
  • 利用java怎么对图片进行压缩与缩放
    这篇文章将为大家详细讲解有关利用java怎么对图片进行压缩与缩放,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。压缩public static boolean c...
    99+
    2023-05-31
    java ava
  • 利用java 怎么对文件进行切割与合并
    利用java 怎么对文件进行切割与合并?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、切割文件代码如下:需求:将一个媒体文件切割成多个碎片(每个碎片的大小为1M),并添加...
    99+
    2023-05-31
    java ava
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作