2014-11-05 5 views
0

Я новичок в разборе Json. Я получаю JSON данные из моего URL, который приводится ниже: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

ответ

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. try { JSONArray jsonObj = новый JSONArray (message.toString()); JSONArray jArray = новый JSONArray (jsonObj.get (0) .toString()); for (int i = 0; i

1

Я решил эту проблему. На самом деле строка Json имеет двойной Json Array, а затем Json Object.

Я совершил ошибку, чтобы отправить объект Json Array в Json Object. Теперь я создал объект 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{ 
    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.

Смежные вопросы