2016-07-22 98 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