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!






0 comentários:
Postar um comentário