2014-09-26 17 views
0

我得到響應這個如何在webservice響應後反轉json數組?

{ 
    "success": 1, 
    "message": "some message", 
    "data": [ 
     { 
      "comment_id": "43906", 
      "comp_id": "116725", 
      "user_id": "48322", 
      "agree": "0", 
      ..... 
      "replies": [....] 
     }, 
     { 
      "comment_id": "43905", 
      "comp_id": "116725", 
      "user_id": "48248", 
      "agree": "0", 
      ....... 
      "replies": [...] 
     } 
    ] 
} 

我得到這樣

JSONObject js =new JSONObject(response); 
routeJsonArray.=js.getJSONArray("data"); 

在JSON陣列中的所有迴應,但我需要扭轉的所有對象,它是數據數組內。在其他的字時,我得到響應和打印commant_id「43906」,「43905」,

但我需要我逆轉的對象,這樣,當我打印出來先給「43905」,「43906」,

有從i = routeJsonArray.length; i > 0; i--迭代的解決方案但我不想要這個。我想要在另一個陣列中存儲反向陣列。

我嘗試這樣。

String [] routeStationString; 

JSONArray localJsonArray = js.getJSONArray("data"); 
routeStationString = new String[localJsonArray.length()]; 
int k = 0; 
for (int i = localJsonArray.length(); i > 0; i--) { 
    routeStationString[k++] = localJsonArray.getJSONObject(i); 
} 
System.out.println(routeStationString); 

它給出了錯誤。

+0

使用一些IDE如Eclipse進行開發。您正嘗試將JSONObject存儲到字符串數組中。 – adwiv 2014-10-02 14:07:29

回答

2

您通常希望將此數組解析爲POJO模型。因此,這個想法將是一個List<Comment> list例如,然後你將能夠通過Collections.reverse(list)方法扭轉該列表。

如何使用JSON數組中的數據?你仍然需要迭代它,再加上記住鍵和一切。最典型的解決方案是將JSON數據解析爲java對象。

+0

神聖莫里!你在我的腦海裏嗎? :P – Pavlos 2014-09-26 23:31:37

+0

哈哈:)我認爲多數民衆贊成如何做對不對? – DArkO 2014-09-27 00:03:46

+0

使這更奇怪我剛剛看到你的github頁面和circleView和唯一的項目列爲一個使用它實際上是一個由我的親密朋友做的應用程序... – DArkO 2014-09-27 00:06:43

3

我的方法是創建一個表示來自數組的註釋的Java模型,然後像這樣繼續。

ArrayList<Comment> mList = new ArrayList<Comment>(); 

for(int i=0;i<routeJsonArray.length();i++){ 
    //get the jsonobject based on the position 
    //retrieve its values 
    //create a new comment object and store it to the mList 
} 

Collection.reverse(mList); 
+0

/檢索它的值的意思,我可以這樣做JsonObject js = routeJsonArray.getjsonObject(i) – 2014-09-26 23:36:27

+0

讀取comment_id並將其存儲到您的評論對象等等您的jsonarray中的每個子元素的每個值 – Pavlos 2014-09-26 23:37:21

0
JSONArray toReturn = new JSONArray(); 
    int length = jsonArray.length()-1; 
    for(int i =length; i >= length;i--){ 
     try { 
      toReturn.put(jsonArray.getJSONObject(i)); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
      Toast.makeText(this, "Something wrong", Toast.LENGTH_SHORT).show(); 
     } 
    } 
+0

如果他想在另一個數組中,那麼編輯會它 – 2016-11-29 13:37:31