1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Não Consigo jogar os Valores do JsonObject em um array

Estou tentando jogar os valores do JsonObject em um array global, mais nao esta funcionando por que eu nao consigo pegar todos os valores que esta no meu json. Se eu tentar imprimir meu array na posição 0 ele pega o primeiro elemento, mais se eu tentar imprimir na posição 1 ele fala que nao existe

Meu Json:

{"coordenada":[{"latitude":"-23.18519997","longitude":"-45.88215799"}, {"latitude":"-23.18519997","longitude":"-45.88215799"},{"latitude":"-23.18519997","longitude":"-45.88215799"},{"latitude":"-23.18519997","longitude":"-45.88215799"},{"latitude":"-23.18519997","longitude":"-45.88215799"}]}

Meu codigo:

 ServiceHandler sh = new ServiceHandler();
            jsonStr = sh.makeServiceCall(url, ServiceHandler.POST);
            Log.d("Response: ", "> " + jsonStr);



            if (jsonStr != null) {
                try {                    
                    JSONObject jsonObj = new JSONObject(jsonStr);

                    contacts = jsonObj.getJSONArray(TAG_COORDENADA);

                    // 
                    for (int i = 0; i < contacts.length(); i++) {
                        JSONObject c = contacts.getJSONObject(i);

            latitude = new String[]{c.getString(TAG_LATITUDE)};
            longitude = new String[]{c.getString(TAG_LONGITUDE)};

            HashMap<String, String[]> contact = new HashMap<String, String[]>();           


                        contact.put(TAG_LATITUDE, latitude);
                        contact.put(TAG_LONGITUDE, longitude);

                    }
             }
                 catch (JSONException e) {
                    e.printStackTrace();
                }
            } else {
                Log.e("ServiceHandler", "Couldn't get any data from the url");
            }


                      String Variavel = latitude[0];     
                      String Variavel2 = latitude[1];

                      System.out.println(variavel); // ele imprime corretamento com a primeira posição do array 
                      System.out.println(variavel2); // nao imprime, diz que nao existem esse indice e que o tamanho do array é 1;
  • De uma olhada no stacktrace, porque pode estar dando erro e você não está percebendo, visto que você tem um catch soh com o printStackTrace.

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

    ByddU   23 de out de 2014
  • ah sim eu tirei mais msmo assim ele da problema ele fala que o array so tem 1 indice

    Pedro Henrique   23 de out de 2014
  • Problema vai continuar dando, o que agora tu tem que ver se nao surgiu outra mensagem de erro relacionado a erro de conversao ou algo do tipo.Eu tinha imaginado que ele estava conseguindo converter o primeiro e dava erro no segundo, deixando a lista com tamanho 1.

    Procure no logcat as mensagens de erro e poste aqui se for o caso.

    ByddU   23 de out de 2014
  • Ele da esse erro java.lang.ArrayIndexOutOfBoundsException: length=1; index=1

    Pedro Henrique   23 de out de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java android ou faça a sua própria pergunta.