java – JSONArray in JSONObject: Json.typeMistach error

Question:

In a web search I found that the Json.typeMistach error was due to me getting a JSONArray and trying to set it in a JSONObject .

Turns out I can't fix it, the error persists.

Could someone give me a hand or give me a tutorial for the problem?

My JSON :

[
   {
      "id":19761,
      "nome_oficina":"Oficina Beira Mar"
   },
   {
      "id":19838,
      "nome_oficina":"Oficina Beira Mar"
   },
   {
      "id":19948,
      "nome_oficina":"Oficina Beira Mar"
   }
]

My code to convert JSONArray to JSONObject :

private void parseJson(String data) {

    String strJson=data;

    try {
    JSONObject jsnJsonObject = new JSONObject(strJson);
    JSONArray contacts = jsnJsonObject.getJSONArray("NAO SEI O QUE POR AQUI, JÁ QUE MINHA STRING NÃO SE INICIA COM TIPO DO OBJETO");

        for (int i = 0; i < contacts.length(); i++)
        {       
            JSONObject c = contacts.getJSONObject(i);
            String id = c.getString("id");
            String boy_code = c.getString("nome_oficina");
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
}

Answer:

You get a JSONArray , you just need to go through it accessing each index (which is a JSONObject ):

private static void parseJson(String data){    
    try {
        JSONArray array = new JSONArray(data);

        // Percorrendo cada índice
        for(int i = 0; i < array.length(); i++){

            // Obtendo o objeto do índice atual
            JSONObject json = array.getJSONObject(i);

            String id = json.get("id").toString();
            String boy_code = json.get("nome_oficina").toString();                
            System.out.println("id: " + id + " - boy_code: " + boy_code);
        }       
    } catch(JSONException err){
        // Tratamento de exceções
    }
}

output:

id: 19761 – boy_code: Oficina Beira Mar
id: 19838 – boy_code: Oficina Beira Mar
id: 19948 – boy_code: Oficina Beira Mar

Scroll to Top