2015-01-01 2 views
-2

У меня есть объект json с этой структурой.Как разобрать объект JSON со счетом

{ 
    "count": 3, 
    "result": { 
     "1": { 
      "brand_id": "1", 
      "brand_name": "Adidas", 
      "brand_image": "http://a.jpg" 
     }, 
     "2": { 
      "brand_id": "2", 
      "brand_name": "Asics", 
      "brand_image": "http: //b.jpg" 
     }, 
     "3": { 
      "brand_id": "3", 
      "brand_name": "Adidas adidas", 
      "brand_image": "http: //c.jpg" 
     } 
    } 
} 

Это не статический. Граф может отличаться.

Я пробовал вот так. Я не хочу использовать gson. Я хочу разобраться в этом. Как продолжить такую ​​структуру данных.

JSONObject totalData=new JSONObject(results.toString()); 
JSONObject brandResults=totalData.getJSONObject("result"); 

// I can get output in this. 
Log.e("Result output", brandResults.toString()); 

// this is not working 
int brandCounts = brandResults.getInt("count"); 
Log.e("BRAND COUNTS", ""+brandCounts); 

if (brandCounts > 0) { 
    for (int i = 0; i < brandCounts; i++) { 
     JSONObject items = brandResults.getJSONObject(Integer.toString(i)); 
     String brand_id=items.getString("brand_id"); 
     Log.e("Brand id", brand_id); 
    } 
} 
+0

В качестве альтернативы 'brandResults.length()' – Eric

+0

не отображают дубликаты. покажите мне, как это решить. – Star

+0

@Star: Нет, так работает переполнение стека. Отображение дубликатов - это правильная вещь, если они действительно в основном похожи. – Eric

ответ

0

Простая ошибка при получении счета. Измените это следующим образом.

JSONObject totalData=new JSONObject(results.toString()); 
     JSONObject brandResults=totalData.getJSONObject("result"); 
     Log.e("Result output", brandResults.toString()); 

     int brandCounts = totalData.getInt("count"); 

     Log.e("BRAND COUNTS", ""+brandCounts); 
     if (brandCounts > 0) { 

      for (int i = 1; i <= brandCounts; i++) { 
       JSONObject items = brandResults 
         .getJSONObject(Integer.toString(i)); 
       String brand_id=items.getString("brand_id"); 
       Log.e("Brand id", brand_id); 

      } 
     } 

Счастливый Coding

+0

Я не мог получить идентификатор бренда. – Star

+0

О, у меня получилось, что вам нужно запустить переменную цикла «i» из 1. Вот почему вы не получаете выход. см. отредактированный код. – BeingMIAkashs

+0

большое вам спасибо :) – Star

1

Это должно ответить на ваш вопрос

int count = totalData.getInt("count"); 

Вы пытаетесь принести отсчитываются от результата, но ваш счетчик находится в самом JSONObject.

+0

это то, что я упомянул правильно. – Star

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