亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

按 ID 對 JSON 數組進行排序

按 ID 對 JSON 數組進行排序

慕妹3146593 2021-11-17 17:34:01
我編寫的代碼采用包含 JSON 數據的字符串。我正在按 ID 對我的 JSON 對象數組進行排序。當我使用我的方法時,我得到這個異常:“org.json.JSONException: A JSONArray text must start with '[' at 1 [character 2 line 1]”。我在這里缺少什么以及如何解決它?private static void ResortJsonByUseCaseID( String jsonArrStr ){    JSONArray jsonArr = new JSONArray(jsonArrStr);    JSONArray sortedJsonArray = new JSONArray();    List<JSONObject> jsonValues = new ArrayList<JSONObject>();    for (int i = 0; i < jsonArr.length(); i++) {        jsonValues.add(jsonArr.getJSONObject(i));    }    java.util.Collections.sort( jsonValues, new java.util.Comparator<JSONObject>() {        private static final String KEY_NAME = "useCaseId";        @Override        public int compare(JSONObject a, JSONObject b) {            String valA = new String();            String valB = new String();            try {                valA = (String) a.get(KEY_NAME);                valB = (String) b.get(KEY_NAME);            }            catch (JSONException e) {                //do something                int tal = 9;            }            return valA.compareTo(valB);        }    });    for (int i = 0; i < jsonArr.length(); i++) {        sortedJsonArray.put(jsonValues.get(i));    }    jsonArrStr = sortedJsonArray.toString();}
查看完整描述

1 回答

?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

您所描述的代碼僅適用于如下所示的 json:


[

  { "useCaseId" : "4", ... },

  { "useCaseId" : "1", ... },

  { "useCaseId" : "a", ... },  

  ...

]

如您所見,字符串以一個[字符開頭,就像所要求的異常一樣。


由于“大多數”jsons 以{我猜測您的 json 結構是不同的,然后您將需要相應地調整您的代碼。例如,如果您的 json 數組嵌入在“大多數”jsons 之類的對象中:


{

  "useCases" : [

                 { "useCaseId" : "4", ... },

                 { "useCaseId" : "1", ... },

                 { "useCaseId" : "a", ... },  

                 ...

               ]

}

那么你必須創建一個JSONObject obj = new JSONObject(jsonArrStr),然后JSONArray通過調用(JSONArray)obj.get("useCases").


查看完整回答
反對 回復 2021-11-17
  • 1 回答
  • 0 關注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號