获取JSON格式的树形

时间:2023-01-12 09:31:39

需求:前端需要一个JSON格式的Tree,例如组织机构维护的时候使用到的,需要一次性返回给前端。所以编写了一个算是半通用的查询方法

1、数据库Dao层:

  /**
* 根据父ID获取子数据
* @param tableName 表名
* @param pColName 父字段名
* @param pColValue 父字段名的值
* @return
*/
@Override
public List<Map<String, Object>> getList(String tableName, String pColName, String pColValue) {
String sql = "select * from "+tableName+" where "+pColName+"=:pColValue"; Map<String, String> paramMap = new HashMap<String, String>();
paramMap.put("pColValue",pColValue);
return getNamedParameterJdbcTemplate().queryForList(sql, paramMap);
}

2、通用Service

/**
* 获取JSONArray
* @param tableName 表名
* @param pColName 父字段名
* @param colName 编号对应字段名
* @param pColValue 父字段名的值
* @return
* @throws Exception
*/
public JSONArray getJSONArray(String tableName, String pColName,String colName,String pColValue) throws Exception{
JSONArray array = new JSONArray(); List<Map<String, Object>> areaList = getList(tableName,pColName,pColValue);
for (Map<String, Object> map : areaList){
String newPvalue = map.get(colName).toString();
Map<String,Object> newMap = MapUtils.transToLowerCase(map);
JSONObject object = JSONObject.parseObject(JSON.toJSONString(newMap));
object.put("children",getAreaArrayByPAreaNo(tableName,pColName,colName,newPvalue));
array.add(object);
}
return array;
} /**
*
* @param tableName
* @param pColName
* @param colName
* @param pColValue
* @return
* @throws IllegalAccessException
*/
List<Map<String,Object>> getAreaArrayByPAreaNo(String tableName, String pColName,String colName, String pColValue) throws IllegalAccessException{
JSONObject object = new JSONObject();
List<Map<String,Object>> list = new ArrayList<>();
JSONArray tmp = new JSONArray();
List<Map<String,Object>> resultList = getList(tableName,pColName,pColValue);
if(resultList != null && resultList.size()>0){
for (Map<String,Object> map : resultList){
String newPvalue = map.get(colName).toString();
Map<String,Object> newMap = MapUtils.transToLowerCase(map);

List<Map<String, Object>> nodeList = getAreaArrayByPAreaNo(tableName,pColName,colName,newPvalue);
if (nodeList != null && nodeList.size()>0) {
newMap.put("children", nodeList);
}
list.add(newMap);
}
} return list;
}

3、Action调用

/**
* 加载行政区划
* @param request
* @return
* @throws Exception
*/
@RequestMapping(value = "/list_area", method = RequestMethod.GET)
@ResponseBody
public ResponseResult listarea(HttpServletRequest request) throws Exception {
String tableName = "BC_AREA";
String pColName = "P_AREA_NO";
String pColValue = "0";
String colName = "AREA_NO"; //获取树形
JSONArray array = commonService.getJSONArray(tableName,pColName,colName,pColValue); return ResultUtil.success(array);
}

  最终返回的结果类似:

获取JSON格式的树形

获取JSON格式的树形

获取JSON格式的树形的更多相关文章

  1. jQuery获取JSON格式数据方法

    getJSON方法: jQuery.getJSON(url,data,success(data,status,xhr)) $("button").click(function(){ ...

  2. struts2使用jsp和&lt&semi;s&colon;property&gt&semi;标签获取json格式的返回数据

    struts2使用jsp和<s:property>标签获取json格式的返回数据 1.struts2的action中 return "success"; 2.指向的返回 ...

  3. Android Volley获取json格式的数据

    为了让Android能够快速地访问网络和解析通用的数据格式Google专门推出了Volley库,用于Android系统的网络传输.volley库可以方便地获取远程服务器的图片.字符串.json对象和j ...

  4. 获取json格式字符串的简单方法

    有的时候需要找一些Json格式的字符串,可以打开任意一个网页进入到调试模式,然后看network相关的访问信息,就可以获取到. 比如: 在记笔记的时候,点击保存后,会发出一些请求,然后有相应的相应,任 ...

  5. 获取JSON格式的字符串各个属性对应的值

    {"lastrdtime":1515998187379,"creditbalance":"$5.00","contactmode& ...

  6. JSP获取json格式的数据报错 Uncaught SyntaxError&colon; Unexpected identifier

    后台json字符串是 {"id":"cmdb_ci.`fully_qualified_domain_name`","field":&quot ...

  7. jQuery中使用Ajax获取JSON格式数据示例代码

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.JSONM文件中包含了关于“名称”和“值”的信息.有时候我们需要读取JSON格式的数据文件,在jQuery中 ...

  8. 获取json格式的数据变成了undefined!?

    今天在做一个简单的登陆功能时,当一切准备就绪,点击登陆时,什么都没发生..然后开始debug,打断点调试,然后发现了这个.向页面传递数据flag是true代表该用户的账号密码验证码等信息正确可以登录, ...

  9. C&num; 语言如何获取json格式的数据,不用javascript用c&num;实现。。。

    {'state' : 1,'data':{'list':[{'id': 123, 'name': '诸葛天邪','level': 10,'country': 1,}]}} 比如我要获取里面的 id 该 ...

随机推荐

  1. UIToolbar 莫名黑线条 隐藏办法

    - (void)awakeFromNib { [self setBackgroundImage:[UIImage new]forToolbarPosition:UIBarPositionAny bar ...

  2. C&num; this和base的使用

    namespace THISORBASE { //参考地址:http://blog.sina.com.cn/s/blog_7300c7d90100rs20.html /*这个时候,派生类和基类的_st ...

  3. Hibernate框架之Criteria查询

    首先给大家说说Hibernate检索方式 Hibernate提供了5种检索对象的方式 1.导航对象图检索方式:根据已经加载的对象导航到其他对象 2.OID检索方式:按照对象的OID来检索对象 3.HQ ...

  4. 【SPOJ】7258&period; Lexicographical Substring Search(后缀自动机)

    http://www.spoj.com/problems/SUBLEX/ 后缀自动机系列完成QAQ...撒花..明天or今晚写个小结? 首先得知道:后缀自动机中,root出发到任意一个状态的路径对应一 ...

  5. phalcon&colon; eventManager事件管理(结合dispatcher调度控制器)制作简单的acl

    制作简单的acl, dispatcher(专门用来加载或调度或跳转到相应的url地址即XXXcontroller的调度器或控制器,能够在controller执行前对controller进行停止跳转等) ...

  6. JavaScipt call和apply用法

    转:http://www.cnblogs.com/wupeng/p/3477879.html Javascript call与apply记录 [注]:记录自己对javascript中call与appl ...

  7. java基础练习 7

    public class Seventh { public static void main(String[] args){ double x=0,a=1,b=9; while(x!=a*a-100& ...

  8. CentOS编译安装PHP常见错误及解决办法

    1.configure: error: No curses/termcap library found yum -y install ncurses-devel 2.configure: error: ...

  9. 为共享服务器配置Oracle数据库

    参考资料 https://docs.oracle.com/cd/E11882_01/server.112/e25494/manproc.htm#ADMIN00502

  10. Kafka数据可靠性深度解读

    原文链接:http://www.infoq.com/cn/articles/depth-interpretation-of-kafka-data-reliability Kafka起初是由Linked ...