Java / Gson – Convertendo json em lista tipada List (Gson – convert from Json to a typed ArrayList)

gson

O Gson é uma biblioteca Java que pode ser usada para converter objetos Java em sua representação JSON. Ele também pode ser usado para converter uma string JSON em um objeto Java equivalente. Gson pode trabalhar com objetos Java arbitrários, incluindo objetos pré-existentes que você não tem código fonte de. (Gson – Google)

A seguir segue um exemplo de como converter um JSON Array em uma lista de objetos:

    public static void main(String[] args) throws Throwable {
        //Arquivo json
        String json = "[\n"
                + "  {\n"
                + "    \"nome\": \"Guilherme Biff Zarelli\",\n"
                + "    \"sexo\":\"M\",\n"
                + "    \"idade\": 26\n"
                + "  },\n"
                + "    {\n"
                + "    \"nome\": \"Joao Silveira\",\n"
                + "    \"sexo\":\"M\",\n"
                + "    \"idade\": 45\n"
                + "  },\n"
                + "    {\n"
                + "    \"nome\": \"Maria Oliveira\",\n"
                + "    \"sexo\":\"F\",\n"
                + "    \"idade\": 22\n"
                + "  }\n"
                + "]";

        //Define o TypeToken para a conversão string->objeto
        TypeToken tt = new TypeToken<List<Usuario>>() {
        };

        //Biblioteca Gson: https://github.com/google/gson
        Gson gson = new Gson();
        //Conversao json para List<Usuario>
        List<Usuario> fromJson = gson.fromJson(json, tt.getType());

        System.out.println(fromJson);
    }

    /**
     * Objeto utilizado para mapear o json
     */
    class Usuario {
        private String nome;
        private String sexo;
        private int idade;
        
        @Override
        public String toString() {
            return "Usuario{" + "nome=" + nome + ", sexo=" + sexo + ", idade=" + idade + '}';
        }
    }

Help DEV – Analista desenvolvedor Java / Android

http://helpdev.com.br/zarelli

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>