Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Trabalhando com json.

Oi Luis,


Esse json de exemplo você fez na mão? É que está faltando um } no final... se não o problema pode estar no webservice.. se foi só erro de digitação desencana :)

Por que você está fazendo jObject = new JSONObject(data.toString())?
A string inicial é um JSONArray já, não é? Talvez a linha de cima esteja dando exceção...
Acho que você poderia tentar algo como:

JSONArray array = new JSONArray(data.toString());               // [{"posicao": {"x": -23.315558, "y": -51.157537}}]
JSONObject object = array.getJSONObject(0);                       // {"posicao": {"x": -23.315558, "y": -51.157537}}
JSONObject posicao = object.getJSONObject("posicao");       // {"x": -23.315558, "y": -51.157537}
double x = posicao.getDouble("x");                                        // -23.315558
double y = posicao.getDouble("y");                                        // -51.157537

Bom.. não tentei rodar isso, mas é assim que eu tentaria :)
Ou então você pode usar o Gson ou alguma outra biblioteca também..

Toshi Kurauchi


2012/2/22 luiszacheu <luiszacheu@gmail.com>
Olá amigos estou com uma grande dificuldade em pegar dados de um
determinado json.
Bom o json que está retornado é mais ou menos assim :

[{"posicao": {"x": -23.315558, "y": -51.157537}]

o código no qual estou trabalhando é o seguinte:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONObject;

import br.com.app.R;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class GetJson extends Activity {

       private JSONObject jObject;
       final static String jString = "http://link_do_json";
       TextView httpStuff;

       @Override
       protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               setContentView(R.layout.main);
               httpStuff = (TextView) findViewById(R.id.tvHttp);
               try{
                       parse();
               }catch (Exception e) {
                       e.printStackTrace();
               }
       }

       private void parse() throws Exception {
               StringBuilder url = new StringBuilder(jString);
               HttpClient client = new DefaultHttpClient();
               HttpGet httpGet = new HttpGet(url.toString());
               HttpResponse r = client.execute(httpGet);
               HttpEntity e = r.getEntity();
               String data = EntityUtils.toString(e);

               jObject = new JSONObject(data.toString());
               JSONArray jArray = new JSONArray(data.toString());
               //JSONArray jArray = new JSONArray(jObject);

               //JSONObject posicaoObject = jObject.getJSONObject("posicao");



       //      httpStuff.setText(posicao.getJSONObject(0).toString());


       }


}

Será que alguém poderia me dar uma força, bom esse json é uma parte do
contexto todo, porem se eu conseguir pegar esse item o restante fica
tranquilo...até consegui pegar o conteúdo desse array, porem usando um
outro código, mas queria pegar esse array e quebra lo para pegar o
valor do x ou do y ou ambos.


Obrigado!

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário