JSON parse class java

2

I'm having some doubts, how do I make a parse of a JSON coming from webservice.

My class comentarios looks like this:

public class Comentarios extends BaseEntity {

 private Integer avaliacao;
 private String observacaoAvaliacao;
 private String nmCliente;

 public Comentarios(Integer avaliacao, String observacaoAvaliacao, String nmCliente) {
    avaliacao = avaliacao;
    observacaoAvaliacao = observacaoAvaliacao;
    nmCliente = nmCliente;
 }

 public void setAvaliacao(Integer avaliacao) {
    this.avaliacao = avaliacao;
 }

 public void setObservacaoAvaliacao(String observacaoAvaliacao) {
    this.observacaoAvaliacao = observacaoAvaliacao;
 }

 public void setNmCliente(String nmCliente) {
    this.nmCliente = nmCliente;
 }

 public Integer getAvaliacao() {
    return avaliacao;
 }

 public String getObservacaoAvaliacao() {
    return observacaoAvaliacao;
 }

 public String getNmCliente() {
    return nmCliente;
 }
}

My JSON is coming from the server like this:

Resposta: {
  "sucesso": true,
  "mensagem": " Comentarios listados com sucesso. ",
  “comentarios”:[
     {
       “avaliacao”:”4”,
       “observacaoAvaliacao”:”Restaurante muito bom, valeu a pena comer o crepe de frango, e muito melhor é o aplicativo.”,
      “nmCliente”:”Renan R.”
     }
  ]
 }

I need to access like this:

Comentarios comentarios;
comentarios.getNmCliente();
    
asked by anonymous 23.05.2017 / 19:53

1 answer

1

If I understand correctly your question is just to assign the values to the comment object and then remove the name with this method, it may be so ...

Comentario comentario = new Comentario();
JSONArray json = new JSONArray(resposta);
JSONObject jsonObj = json.getJSONObject(0); // caso vc só tenha um objeto... caso não vc faz um for... populando uma ArrayList<Comentario>
comentario.setAvaliacao(jsonObj.getInt("avaliacao"));
comentario.setObservacaoAvaliacao(jsonObj.getString("observacaoAvaliacao"));
comentario.setNmCliente(jsonObj.getString("nmCliente"));

Now you can remove item by item using the get's of your class Comment on the comment object that was created ... remembering that if you have more than one object in return of the webserver JSON you must use an ArrayList and it's popular with or for ..

   // Exemplo com for:

    ArrayList<Comentario> listaComentarios = new ArrayList<Comentario>; // cria a lista de comentarios

    JSONArray json = new JSONArray(resposta);

    for(int i = 0; i < json.lenght; i++){
        Comentario comentario = new Comentario();
        JSONObject jsonObj = json.getJSONObject(i); // pega o objeto de indice i
        comentario.setAvaliacao(jsonObj.getInt("avaliacao"));
        comentario.setObservacaoAvaliacao(jsonObj.getString("observacaoAvaliacao"));
        comentario.setNmCliente(jsonObj.getString("nmCliente"));
        listaComentarios.add(comentario); // adiciona o comentario de indice i a lista de comentarios 
    }
    
23.05.2017 / 21:19