2016-07-22 72 views
0

我正在試圖使用android獲得此JSONArray,但我無法獲得所有項目的codigo和​​。在Android中使用Volley獲取JSONArray

我離開JSON,我試圖讓:

{ 「categorias」: { 「cfcd208495d565ef66e7dff9f98764da」:{ 「奧登」:0, 「codigo」: 「001」,「農佈雷「:」TUBO Y ACCESORIO DE COBRE,LATON「}, 」c4ca4238a0b923820dcc509a6f75849b「:{」orden「:1,」codigo「:」002「,」nombre「:」TUBO Y ACCESORIO PVC PRESION「}, 」c81e728d9d4c2f636f067f89cc14862c「 :{「orden」:2,「codigo」:「003」,「nombre」:「AISLAMIENTO」}, 「eccbc87e4b5ce2fe28308fd9f2a7baf3」:{「orden」:3,「codigo」:「004」,「nombre」 MONTAJE DE AGUA SANITARIA「}, 」a87ff679a2f3e71d9181a67b7542122c「:{」orden「:4,」codigo「:」005「,」nomb re「:」ABRAZADERAS FONTANERIA「},」e4da3b7fbbce2345d7772b0674a318d5「:{」orden「:5,」codigo「:」006「,」nombre「:」FLEXOS DE ACERO「}, 」1679091c5a880faf6fb5e6087eb1b2dc「:{」orden「:6 「codigo」: 「007」, 「農佈雷」: 「ACCESORIOS DE SANEAMIENTO」}, ... ... ...

這是我在Android的代碼,我總是空迴應:

JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, showUrl, null, 
       new Response.Listener<JSONObject>() { 

        @Override 
        public void onResponse(JSONObject response) { 
         System.out.println("Respuesta:"+ response.toString()); 
         try { 
          listaCategorias.clear(); 
          int array=0; 

          JSONArray categorias = response.getJSONArray("categorias"); 

          for (int i = 0; i < categorias.length(); i++) { 

           JSONObject objet = categorias.getJSONObject(i); 

           String titulo = objet.getString("nombre"); 

           if (isIntegerParseInt(String.valueOf(titulo.charAt(0)))) 
            listaCategorias.add(titulo); 

          } 
          array++; 
          onCallBack.onSuccess(listaCategorias); 



         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 

        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       System.out.println("ErrorRespuesta: "+error.getMessage()); 

      } 
     }); 
     requestQueue.add(jsonObjectRequest); 
+0

您可以發佈您的代碼? – Nisarg

+0

@Nisarg yes,sure – cnbandicoot

+0

「categorias」不是'JSONArray'。它是一個'JSONObject' – injecteer

回答

0

它不是一個數組,而是一個JSONObject,你需要修改你的JSON來得到一個帶有[]而不是{}的數組。或者你通過getJSONObject得到它。

2

它不是一個JSON數組 它的JSON對象
供大家參考我張貼樣品JSON數組

"three_day_forecast": [ 
    { 
     "conditions": "Partly cloudy", 
     "day" : "Monday", 
     "temperature": 20 
    }, 
    { 
     "conditions": "Showers", 
     "day" : "Tuesday", 
     "temperature": 22 
    }, 
    { 
     "conditions": "Sunny", 
     "day" : "Wednesday", 
     "temperature": 28 
    } 
] 

數據用於通過this參考。

0

參照您發佈的JSON字符串categorias不是JSONArray。它是一個對象,JSON字符串仍然無效。

上所擁有的密鑰類別,所述柱的頂部,現在如果你想使用作爲數組必須具有其內[]指定在JSON的類別到數組的值字符串。

另一件事是儘量避免JSON數組的隨機密鑰如果您在帶索引的循環內使用它。所以你的JSON字符串可能看起來像支持你的Android代碼。

{ 
"categories": [ 
    { object 1... }, 
    { object 2... }, 
    and so on... 
] 
} 

你可以看到類型JSON,你需要在這裏:
http://json-parser.com/53b37f69