Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Gson - Json

Eu faço da seguinte forma:

do lado server, eu converto uma lista de objetos com

retornoServidor = gson.toJson(List<Object>);

Já do lado android eu leio dessa forma (pacote org.json.JSONArray):

        //converte o retorno em Array de JSon
        JSONArray arr = new JSONArray(retornoServidor);
       
        //Converte o JSon em uma lista de Objetos
        for (int i = 0; i < arr.length(); i++) {
            JSONObject obj = arrAgenda.getJSONObject(i);

            //agora pega todos os atributos que vem do json e passa pra o construtor da classe
            Object o = new Object(obj.getInt("id"), obj.getStrign("nome"));

Até agora nunca tive problema! espero que ajude!



2012/7/4 Arthur Ruppenthal <arthur.ruppenthal@gmail.com>
Olá Cristian. Eu usava um tempo com collectionType meu cast para objetos da classe. Depois de um tempo passou a dar problema e resolvi usar JSONReader. Claro, miinha classe Pedido tem um construtor publico.
Segue exemplo de código:
            try {
                JsonReader reader = new JsonReader(new InputStreamReader(is, "UTF-8"));
                reader.beginArray();
                while (reader.hasNext()){
                    PedidoObj objPed = new Gson().fromJson(reader,PedidoObj.class);
                    objPed.dt_ult_atu*=1000;
                    objPed.data_digitacao*=1000;
                    // dbPed.Insert(objPed); Classe dbPED que insere no banco
                    novos++;
                }
                reader.endArray();
                reader.close();
            } catch (Exception e) {
                Log.e("Error: ", "MSG: "+e.getMessage());
            } finally {
                dbPed.endTrans();

            }


2012/7/3 Buiu <buiucardoso@gmail.com>
pior que não resolveu....


Em 3 de julho de 2012 23:16, luciofm <luciofm@gmail.com> escreveu:

falta um construtor public sem parametros

public WebServiceRetornoGeral() {
}

Lúcio Maciel
luciofm@gmail.com



2012/7/3 Cristian Cardoso <buiucardoso@gmail.com>

Boa noite pessoal!

Novamente aqui para pedir ajuda...

Estou consumindo um WebService que tem como resposta:

{"resultado":1,"msg":"ok","msgerro":"aaaa"}

 

Estou usando a biblioteca Gson para transformar este json em um objeto, funciona perfeito enquanto estou em modo debug, quando faço o export do meu aplicativo e instalo, ele não da erro, simplesmente so não popula a classe assim como fazia em debug. Como se o retorno do webservice fosse em branco. Dei os prints do retorno do webservice para certificar que esta retornando certo e esta 100% como o esperado...

Alguém já usou esta biblioteca Gson? Alguém teria alguma dica de onde estou errando?

 

public class WebServiceRetornoGeral {

 

       public int resultado;

       public String msgerro;

       public String msg;

 

}

----------

Type collectionType = new TypeToken<WebServiceRetornoGeral>() {}.getType();

 

Gson gson = new Gson();

 

String response = "{\"resultado\":1,\"msg\":\"ok\",\"msgerro\":\"aaaa\"}";

WebServiceRetornoGeral retorno = gson.fromJson(response, collectionType); /// tentei tbm colocar apenas WebServiceRetornoGeral.class mas tbm não rolou

if (retorno.resultado == 1) {

////

}else{

////

}





--
Abraço
Cristian Cardoso
@CTNCardoso
http://ctncardoso.com.br


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

0 comentários:

Postar um comentário