将json解析为JSONObject与原始顺序混淆

时间:2013-05-08 10:56:23

标签: java android json parsing

我有json,我想解析为JSONObject。 当我这样做时,它会弄乱json的顺序,见下文。 我该如何解决这个问题?

原json:

{"result":
    {"headers":
         {
         "month_1":"May 2013",
         "month_2":"April 2013",
         "month_3":"March 2013",
         "month_4":"February 2013",
         "month_5":"January 2013",
         "month_6":"December 2012",
         "month_7":"November 2012"
          }
     }
}

解析为JSONObject之后:

{"result":
    {"headers":
        {
        "month_6":"December 2012",
        "month_5":"January 2013",
        "month_4":"February 2013",
        "month_3":"March 2013",
        "month_2":"April 2013",
        "month_1":"May 2013",
        "month_7":"November 2012"
        }
    }
}

我的代码:

private void ProcessResponse(String response) {
    JSONObject json = new JSONObject(response);
}

2 个答案:

答案 0 :(得分:0)

JSON库确实坚持JSON对象中的elemts顺序。要了解更多详情,请关注JSON.org。但是代码不应该严格依赖于json object中的元素顺序。

答案 1 :(得分:0)

我能想到的一种方法是,尝试将JSONObject转换为arraylist,然后使用下面的代码。 我现在所能想到的一切。如何转换,尝试在谷歌上搜索。

 Collections.sort("your arraylist", new Comparator<Item>() {
            public int compare(Item i1, Item i2) {
                return i1.getCaption().compareTo(i2.getCaption());
            }
        });