Json对象项目顺序 [英] Json Object Item Order

查看:133
本文介绍了Json对象项目顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经写了一些代码;

I have written some code;

JSONArray ja = new JSONArray();
     try {
        ResultSetMetaData metaData = rslt.getMetaData();
        while ( rslt.next() ){
            JSONObject jo = new JSONObject();
            LinkedHashMap<String, String> jsonOrderedMap = new LinkedHashMap<String, String>();

            for(int i = 0 ; i < metaData.getColumnCount(); i++){
                jsonOrderedMap.put(metaData.getColumnName(i+1), rslt.getString(i+1) );
            }
            System.out.println(jsonOrderedMap);
            /* This doesn't work */
            ja.put(jsonOrderedMap);
            //System.out.println(ja);

        }
     } catch (Exception e) {
    }

我正在尝试订购我的json对象(我​​知道它不应该订购,但我需要它),直到我尝试将jsonOrderedMap放入json数组时,它才起作用.在JsonArray之前,json对象如下所示:

I'am tring to order my json object ( I know it is not supposed to ordered , but I need it) It works until when I try to put my jsonOrderedMap to json array. Before JsonArray, json object looks like this :

{CUSTOMER_SECTOR_ID=611, CUSTOMER_NO=0013114193, CUSTOMER_NAME=asdfasdfds}

将一些jsonOrderedMap放到jsonArray之后,看起来像这样;

After putting some jsonOrderedMap to jsonArray, It looks like this;

[{"CUSTOMER_NAME":"qweqwe","CUSTOMER_NO":"0000003124","CUSTOMER_SECTOR_ID":"611"},
 {"CUSTOMER_NAME":"MAD.","CUSTOMER_NO":"0000003133","CUSTOMER_SECTOR_ID":"611"}]

如您所见,它是不相同的顺序.您有解决的主意吗?我正在使用gson库.

As you can see it is not same order. Do you have any idea to fix it ? I am using gson library.

推荐答案

Jackson JSON Processor 保存订单. 用法的简单示例:

Jackson JSON Processor saves order. Simple example of usage:

   static ObjectMapper o = new ObjectMapper();
   public static void main(String[] args) throws IOException 
   {
      List<Map> array = new ArrayList<Map>();
      Map<String, String> obj1 = new LinkedHashMap<String, String>();
      obj1.put("CUSTOMER_SECTOR_ID", "Id");
      obj1.put("CUSTOMER_NO", "No");
      obj1.put("CUSTOMER_NAME", "Name");
      array.add(obj1);
      System.out.println(o.writeValueAsString(array));
   }

Maven依赖

  <dependency>
     <groupId>org.codehaus.jackson</groupId>
     <artifactId>jackson-mapper-asl</artifactId>
     <version>1.8.5</version>
  </dependency>

这篇关于Json对象项目顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆