2015-07-13 3 views
-1
---------- 
articulo: { 
precio_competencia_a: null, 
grupo_conceptual: "BALERINA", 
estilo: "32501 ", 
color: "PLATA", 
precio: "529.00", 
marca: "Flexi", 
id_marca: "15", 
concepto: "POR DEFINIR CALZADO DAMA", 
id_grupo_conceptual: "7", 
id_linea: "1", 
precio_sin_descuento: "529.00", 
acabado: "PIEL", 
precio_competencia_b: null, 
precio_competencia_c: null, 
logo: "logo3.png", 
foto: "4030/006966/4030_006966_170.jpg", 
id_cadena: "4030", 
codigo: "006966 ", 
linea: "CALZADO MUJER" 
}, 

Ниже мой код:JSONObject не могут быть преобразованы в JSONArray Volley librerary

public List<PostProductos> parseJson(JSONObject jsonObject){ 
    // Variables locales 
    List<PostProductos> posts = new ArrayList<>(); 
    JSONArray jsonArray= null; 

    try { 
     // Obtener el array del objeto 

     jsonArray=jsonObject.getJSONArray("articulo"); 


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

      try { 

       JSONObject Object = jsonArray.getJSONObject(i); 
       System.out.println(Object.getString("marca"));; 



       PostProductos post = new PostProductos(

         Object.getString("marca") 
         ); 

       //posts.add(post); 

      } catch (JSONException e) { 
       Log.e(TAG, "nel: "+ e.getMessage()); 
      } 
     } 

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


    return posts; 
} 

ОШИБКА:

org.json.JSONException: Value {"precio_competencia_a":null,"grupo_conceptual":"BALERINA","estilo":"32501  ","color":"PLATA","precio":"529.00","marca":"Flexi","id_marca":"15","concepto":"POR DEFINIR CALZADO DAMA","id_grupo_conceptual":"7","id_linea":"1","precio_sin_descuento":"529.00","acabado":"PIEL","precio_competencia_b":null,"precio_competencia_c":null,"logo":"logo3.png","foto":"4030\/006966\/4030_006966_170.jpg","id_cadena":"4030","codigo":"006966 ","linea":"CALZADO MUJER"} at articulo of type org.json.JSONObject cannot be converted to JSONArray 

ответ

0

"articulo" объект является объектом, а не массив. Объекты JSON начинаются с {и закрываются с}. Массивы JSON начинаются с [и закрываются].

Это будет работать:

// Obtener el array del objeto 
if (jsonObject.has("articulo") && jsonObject.get("articulo") instanceof JSONObject) { 
    JSONObject articulo = jsonObject.getJSONObject("articulo"); 
} 

Если вам нужно JSONArray:

JSONArray jsonArray = new JSONArray(); 
if (jsonObject.has("articulo") && jsonObject.get("articulo") instanceof JSONObject) { 
    jsonArray.put(jsonObject.getJSONObject("articulo")); 
} 
0

Глядя на ваш ответ JSON, кажется, что articulo является JSONObject, но не JSONArray.

articulo будет JSONArray (заключенный в квадратные скобки), если это было что-то вроде этого:

articulo: [ 
{ 
.... 
}, 
{ 
.... 
} 
] 

articulo является JSONObject (заключенный в фигурные скобки), так как это что-то вроде этого:

articulo: { 
    .... 
    } 
Смежные вопросы