List转json 顺序不一致
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 顺序不一致相关推荐
- 谷歌插件webscraper使用问疑难杂症(插件页面跑到右边+爬取内容乱序+自定义选择多个列表+滚动抓取社交发帖+select鼠标无法选中元素+无法识别表格+插件支持范围+爬取数据与原始顺序不一致+)
博客目录 谷歌插件webscraper使用问疑难杂症解决 1.插件打开后跑到了右边 2.爬取内容乱序 3.mac的支持这个插件吗 4.除了谷歌外,火狐.IE.360等浏览器支持吗 5.自定义选择多个列 ...
- 关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的问题
关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的问题 参考文章: (1)关于解决SpringDataJpa框架实体类表字段创建顺序与数据库表字段展示顺序不一致的 ...
- 【MyBatis使用】 mapper文件未编译 + statementType使用 + 返回结果字段顺序不一致 + 获取自增ID + 一个update标签批量更新记录
1. mapper 文件未编译 如果mapper文件未编译,会报绑定异常. <build><resources><resource><directory> ...
- .NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 行为不一致问题及解决办法
行为不一致 .NET Core 3.0 新出了个内置的 JSON 库, 全名叫做尼古拉斯 System.Text.Json - 性能更高占用内存更少这都不是事... 对我来说, 很多或大或小的项目能少 ...
- ajax传回的数据做表格,Datatables ajax返回的数据顺序与表格中的数据顺序不一致...
项目中Datatables是采用Ajax作为数据源的,当ajax返回数据后,我查看ajax返回的数据发现,ajax返回的数据顺序与datatables表格中显示的数据顺序不一致,请问如何才能这两者显示 ...
- gee报错Some bands might require explicit casts(波段顺序不一致)问题求教
请问大家有遇到过这样的报错吗?显示好像是数据波段顺序不一致,这种应该如何修改啊,谢谢.
- Newtonsoft.Json版本不一致问题解决
1. 问题描述 A程序集引用了 Newtonsoft.Json 6.0程序集 B程序集引用了 Newtonsoft.Json 10.0程序集 此时A引用B,就会报:发现同一依赖程序集的不同版本间存在无 ...
- mybatis中resultType取出数据顺序不一致解决方法
原来我的查询返回resultType = "map" , 也就是这个map,打乱了顺序.因为map并不能保证存入取出数据一致. 解决方法:resultType = "ma ...
- 解决layui表格排序与后台数据返回顺序不一致
一直想让"总计"的数据处在第一行,后台返回的结果中,总计是排在第一位的,但数据返回之后layui表格又重新排序一遍,因为是以升序排列,总计的总消费是最多的,导致"总计&q ...
- 【C# .NET】Oracle数据库连接的坑之传入parameters参数名SQL语句中的参数变量名不匹配(顺序不一致)的问题
问题描述 有一个user表,需要修改id为10086的用户的姓名和年龄,在C#的后台这样写: using (IDbConnection db = DapperFactory.GetConnection ...
最新文章
- 用Python提取解析pdf文档中内容
- python最长连续子串_LeetCode 03无重复字符的最长子串(滑动窗口)
- Gnu/Linux网卡绑定bonding
- mysql小王 保密_利用mysql的注射点得到更多mysql的信息
- 借助Web技术,桌面用户界面将保持活跃
- 机器学习核心概念、常用术语整理(建议收藏)
- SQLite使用报告
- Cognitive Radio Technology认知无线电技术简述
- 【为什么需要FabricPath】FabricPath是思科 Nexus交换机上的一项技术特性,其目标是在保证二层环境的前提下,提高性能。来看看为什么数据中心需要FabricPath?
- excel android 官网下载地址,excel手机版app下载-excel手机版(excel教程学习)下载v2.0 安卓版-西西软件下载...
- YOLOv3: An Incremental Improvement (YOLOv3 论文翻译)
- 宇宙的本源—存在之道和变化之道
- 虚拟服务器机是什么,什么是国内双线虚拟主机
- 室内定位导航系统源码php,UWB室内定位系统方案_室内精确定位DEMO搭建
- JAVA实现大华摄像头WEB方式实时显示视频,H5界面展示方式思路。
- Python+OpenCV3.3图像处理视频教程 贾志刚1
- 透视C# Span<T>数据结构
- “差生”,不要再拿兴趣说事
- 基于python的微信机器人开发_python 微信机器人
- 《UNIX网络编程》读书笔记——第三章 套接字编程简介