日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

List转json 顺序不一致

發(fā)布時間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 List转json 顺序不一致 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

new JSONObject()方法使返回的json格式數(shù)據(jù)的順序與list集合中的數(shù)據(jù)順序保持一致

?

原因在于json版本問題

json2.1以前源碼中new JsonOjbect()中的構(gòu)建函數(shù)是

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

?

?

而在2.3版本后源碼為:

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

?

?

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

?

項(xiàng)目需求:

? ? ? 將mysql表中的所有字段名和字段注釋,表名,表描述用json返回

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

?

?

// 獲取所有需要導(dǎo)出的表名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()則可以實(shí)現(xiàn)有序

?

?

?

?

總結(jié)

以上是生活随笔為你收集整理的List转json 顺序不一致的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。