2014-11-05 95 views
0

我是Json解析中的新成員。我收到這在下文中給出的從我的網址JSON數據:Json在android中解析

[ 
    [ 
     { 
      "message": "hdjcjcjjckckckckvkckckck", 
      "timetoken": 14151866297757284 
     }, 
     { 
      "message": "ufjfjfjcjfjchfjdhwjroritkgjcj", 
      "timetoken": 14151869212145692 
     }, 
     { 
      "message": "udjfjfudjcyshdhsnfkfkvkf", 
      "timetoken": 14151869317015766 
     }, 
     { 
      "message": "lvkifjsywjfwhsjvjdjfudjgidufkg", 
      "timetoken": 14151869404695072 
     }, 
     { 
      "message": "ifjfydncydhsxhshfjdjejtlfudj", 
      "timetoken": 14151869494732788 
     }, 
     { 
      "message": "22637485969473849506&#&#*%-&+", 
      "timetoken": 14151869589393336 
     }, 
     { 
      "message": "jcjfjdueywjfusufig", 
      "timetoken": 14151869671994892 
     }, 
     { 
      "message": "ofkdiriflfkkkfkdiidk", 
      "timetoken": 14151869775170644 
     }, 
     { 
      "message": "testing", 
      "timetoken": 14151869895179728 
     }, 
     { 
      "message": 1234567, 
      "timetoken": 14151869986900556 
     }, 
     { 
      "message": 9877653, 
      "timetoken": 14151870106439620 
     }, 
     { 
      "message": "zxcvbnmmkljgdaqerip", 
      "timetoken": 14151870236042386 
     } 
    ], 
    14151866297757284, 
    14151870236042386 
] 

我用這打破JsonArray數據轉換成不同的索引等我想在我的活動不同的行,以顯示消息和timetoken,像這樣:

message: hdjcjcjjckckckckvkckckck 
time token: 14151866297757284 
message: 22637485969473849506&#&#*%-&+ 
time token: 14151869212145693 

請幫我在那裏,我本來應該在下面的行代碼做:

JSONArray jsonObj = new JSONArray(message.toString()); //message.toString() is the Json Response data 
for (int i = 0; i < jsonObj.length(); i++) { 

} 

我想在我的Textview一個以顯示它如上所述。

+1

使用Gson。 https://code.google.com/p/google-gson/ – dzsonni 2014-11-05 13:50:36

回答

1

試試這一個(未測試):

JSONArray jsonObj = new JSONArray(message.toString()); //message.toString() is the Json Response data 
JSONArray array = jsonObj.getJSONArray(0); 
for (int i = 0; i < array.length(); i++) { 
    JSONObject item = array.getJSONObject(i); 
    String mesage = item.getJsonString("message"); 
    String timespan = item.getJsonString("timespan"); 
} 
+2

它無法使用@Roman。我解決了它。實際上它是一個雙數組,像Json Array> JsonArray> JsonObject。嘗試{JSONArray jsonObj = new JSONArray(message.toString()); JSONArray jArray = new JSONArray(jsonObj.get(0).toString());對於(int i = 0; i 2014-11-06 08:26:22

1

我已經解決了這個問題。實際上,Json字符串具有雙Json數組和Json對象。

我把一個Json數組的對象發送給Json對象時發生了錯誤。現在我已經創建了一個Json Array1的對象,然後將它發送給Json Array2,然後發送Json Array2的對象Json Object

的代碼如下:

try { 

     JSONArray jsonObj = new JSONArray(message.toString()); 
     JSONArray jArray = new JSONArray(jsonObj.get(0).toString()); 
           for (int i = 0; i < jArray.length(); i++) { 

     JSONObject c = jArray.getJSONObject(i); 

     String messageString=c.getString("message"); 
     String timeString=c.getString("timetoken"); 
     String abc = timeString; 

      } 

     } 
1

你應該把JSON解析成try-catch塊:

try{ 
    JSONArray res = new JSONArray(response.toString()); 
    JSONArray jsonArray = res.getJSONArray(0); 
    for(int i = 0; i < jsonArray.length(); i++){ 
     JSONObject object = jsonArray.getJSONObject(i); 
     String message = object.getString("message"); 
     String token = object.getString("timetoken"); 
    } 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

你有雙陣列,所以你有兩個JSONArray。實際上,JSONArray通常用[]標記,JSONObject用{}標記。

換句話說{} = JSONObject[] = JSONArray