new JSONObject()方法使返回的json格式数据的顺序与list集合中的数据顺序保持一致

原因在于json版本问题

json2.1以前源码中new JsonOjbect()中的构建函数是

 public JSONObject(){this.properties = new HashMap();}

而在2.3版本后源码为:

 public JSONObject(){this.properties = new ListOrderedMap();}

ListOrderedMap位于commons-collections的jar包里,与普通的map相比,ListOrderedMap的key可保持原有顺序,而hashmap是无序的

项目需求:

将mysql表中的所有字段名和字段注释,表名,表描述用json返回

表名和秒描述在一张表中展示e_move

 // 获取所有需要导出的表名public static String getTableInfoBeanJson() {JSONArray jsonarray = new JSONArray();Connection conn = DbHelper.getConnection();ResultSet rs = null;PreparedStatement ps = null;try {ps = DbHelper.getConnection().prepareStatement("select * from e_move");rs = ps.executeQuery();while (rs.next()) {JSONObject jsonobj = new JSONObject();String tableName = rs.getString("table_name");String tableDesc = rs.getString("desc");List<ColumnBean> colList = readTableColumn(conn, tableName);jsonobj.put("target", tableName);jsonobj.put("name", tableDesc);jsonobj.put("element", colList);jsonarray.add(jsonobj);}} catch (Exception e) {e.printStackTrace();} finally {DbHelper.Close(rs, ps, conn);}return jsonarray.toString();}//获取表中字段public static List<ColumnBean> readTableColumn(Connection conn, String tableName) {List<ColumnBean> colList = new ArrayList<ColumnBean>();ResultSet resultSet = null;try {DatabaseMetaData dbmd = conn.getMetaData();resultSet = dbmd.getTables(null, "%", "%", new String[] {"TABLE"});while (resultSet.next()) {String t1 = resultSet.getString("TABLE_NAME");ResultSet rs = dbmd.getColumns(null, "%", tableName, "%");if (t1.contains(tableName)) {while (rs.next()) {ColumnBean col = new ColumnBean();col.setName(rs.getString("REMARKS"));col.setEname(rs.getString("COLUMN_NAME"));colList.add(col);}}}} catch (Exception e) {e.printStackTrace();} finally {DbHelper.Close(resultSet, null, null);}return colList;}

ColumnBean.java

public class ColumnBean {private String ename; //字段名private String name; //注释public String getEname() {return ename;}public void setEname(String ename) {this.ename = ename;}public String getName() {return name;}public void setName(String name) {this.name = name;}}

注意:用json2.3版本后的,使用new JsonObject()则可以实现有序

List转json 顺序不一致相关推荐

  1. 谷歌插件webscraper使用问疑难杂症(插件页面跑到右边+爬取内容乱序+自定义选择多个列表+滚动抓取社交发帖+select鼠标无法选中元素+无法识别表格+插件支持范围+爬取数据与原始顺序不一致+)

    博客目录 谷歌插件webscraper使用问疑难杂症解决 1.插件打开后跑到了右边 2.爬取内容乱序 3.mac的支持这个插件吗 4.除了谷歌外,火狐.IE.360等浏览器支持吗 5.自定义选择多个列 ...

  2. 关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的问题

    关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的问题 参考文章: (1)关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的 ...

  3. 【MyBatis使用】 mapper文件未编译 + statementType使用 + 返回结果字段顺序不一致 + 获取自增ID + 一个update标签批量更新记录

    1. mapper 文件未编译 如果mapper文件未编译,会报绑定异常. <build><resources><resource><directory> ...

  4. .NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 行为不一致问题及解决办法

    行为不一致 .NET Core 3.0 新出了个内置的 JSON 库, 全名叫做尼古拉斯 System.Text.Json - 性能更高占用内存更少这都不是事... 对我来说, 很多或大或小的项目能少 ...

  5. ajax传回的数据做表格,Datatables ajax返回的数据顺序与表格中的数据顺序不一致...

    项目中Datatables是采用Ajax作为数据源的,当ajax返回数据后,我查看ajax返回的数据发现,ajax返回的数据顺序与datatables表格中显示的数据顺序不一致,请问如何才能这两者显示 ...

  6. gee报错Some bands might require explicit casts(波段顺序不一致)问题求教

    请问大家有遇到过这样的报错吗?显示好像是数据波段顺序不一致,这种应该如何修改啊,谢谢.

  7. Newtonsoft.Json版本不一致问题解决

    1. 问题描述 A程序集引用了 Newtonsoft.Json 6.0程序集 B程序集引用了 Newtonsoft.Json 10.0程序集 此时A引用B,就会报:发现同一依赖程序集的不同版本间存在无 ...

  8. mybatis中resultType取出数据顺序不一致解决方法

    原来我的查询返回resultType = "map" , 也就是这个map,打乱了顺序.因为map并不能保证存入取出数据一致. 解决方法:resultType = "ma ...

  9. 解决layui表格排序与后台数据返回顺序不一致

    一直想让"总计"的数据处在第一行,后台返回的结果中,总计是排在第一位的,但数据返回之后layui表格又重新排序一遍,因为是以升序排列,总计的总消费是最多的,导致"总计&q ...

  10. 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题

    问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...

最新文章

  1. 用Python提取解析pdf文档中内容
  2. python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)
  3. Gnu/Linux网卡绑定bonding
  4. mysql小王 保密_利用mysql的注射点得到更多mysql的信息
  5. 借助Web技术,桌面用户界面将保持活跃
  6. 机器学习核心概念、常用术语整理(建议收藏)
  7. SQLite使用报告
  8. Cognitive Radio Technology认知无线电技术简述
  9. 【为什么需要FabricPath】FabricPath是思科 Nexus交换机上的一项技术特性,其目标是在保证二层环境的前提下,提高性能。来看看为什么数据中心需要FabricPath?
  10. excel android 官网下载地址,excel手机版app下载-excel手机版(excel教程学习)下载v2.0 安卓版-西西软件下载...
  11. YOLOv3: An Incremental Improvement (YOLOv3 论文翻译)
  12. 宇宙的本源—存在之道和变化之道
  13. 虚拟服务器机是什么,什么是国内双线虚拟主机
  14. 室内定位导航系统源码php,UWB室内定位系统方案_室内精确定位DEMO搭建
  15. JAVA实现大华摄像头WEB方式实时显示视频,H5界面展示方式思路。
  16. Python+OpenCV3.3图像处理视频教程 贾志刚1
  17. 透视C# Span<T>数据结构
  18. “差生”,不要再拿兴趣说事
  19. 基于python的微信机器人开发_python 微信机器人
  20. 《UNIX网络编程》读书笔记——第三章 套接字编程简介

热门文章

  1. PYTHON语言开发公司工资条通知短信
  2. 《大数据之路》阅读笔记--数据同步
  3. webstorm使用指南
  4. python下批量修改图片格式和大小
  5. 技嘉h310主板前置音频没声音_电脑前置插孔没声音 前置音频没声音解决方法
  6. 智能硬件无线通信协议(二)
  7. Java 产品与软件下载
  8. oracle存储过程实例
  9. linux部署moodle
  10. ps手柄震动测试软件,PS3 可实现震动 用PS3手柄连接电脑图文教程 - 电玩巴士