1
resposta

Rest Json Gson Ordenado

Estou iniciando uma aplicação com serviço rest Json que busca API da lista de estados da IBGE. Funciona, porém é ordenado por "id" e gostaria de ordenar por "nome" no bean. Quem pode me ajudar ?

public class Estado {

    private Long id;
    private String nome;
    private String sigla;

    [getters and setters]
@PostConstruct
public void listar() {
    try {
        Client cliente = ClientBuilder.newClient();
        WebTarget caminho = cliente.target("https://servicodados.ibge.gov.br/api/v1/localidades/estados");
        String json = caminho.request().get(String.class);

        Gson gson = new Gson();
        Estado[] vetor = gson.fromJson(json, Estado[].class);

        estados = Arrays.asList(vetor);

    } catch (RuntimeException erro) {
        org.omnifaces.util.Messages.addGlobalError("Ocorreu Erro!");
        // Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes");
        erro.printStackTrace();
    }
}
[xhtml]

        <f:metadata>
            <f:viewAction action="#{estadoBean.listar}" />
        </f:metadata>

                <p:panel header="Estados" style="width:650px; text-align:left;">
                    <p:dataTable rowHover="true" id="tabela"
                        emptyMessage="Nenhum Estado Cadastrado." paginator="true"
                        paginatorPosition="bottom" value="#{estadoBean.estados}"
                        var="estado" rows="50">

                        <p:column headerText="Código" style="text-align:center;" width="70px;" sortBy="#{estado.id}">
                            <h:outputText value="#{estado.id}" />
                        </p:column>

                        <p:column headerText="Estado" width="250px;"
                            sortBy="#{estado.nome}">
                            <h:outputText value="#{estado.nome}" />
                        </p:column>

1 resposta
O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!