ArrayList e JSON

3 respostas
G

Boa noite pessoal. Estou com um problema que é o seguinte: Capturo os dados do meu banco de dados, preencho o ArrayList e depois passo para JSON, porém quando faço isso, está sendo inserido uma barra “”. Vejam o código:

package Controller;

import Model.Bean.AdministratorBean;
import Model.DAO.AdministratorDAO;
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import java.sql.SQLException;
import java.util.List;

public class AdministratorController {
    
    public static String findAll() throws SQLException{
        AdministratorDAO dao = new AdministratorDAO();
        List<AdministratorBean> bean = dao.dataFindAll();
        
        JsonObject json = new JsonObject();

        json.addProperty("total", adm.size());
        json.addProperty("datas", new Gson().toJson(bean));
        return json.toString();
    }
    
}

/* **************

  RETURN CODE:

 {
    "total":2,
    "datas":"[
       {\"name\":\"Administrador\",\"email\":\"[email removido]\"},
       {\"name\":\"Teste\",\"email\":\"[email removido]\"}
    ]"
} 

* ***************/

Sabem me dizer porque está sendo inserido a barra “” no meu JSON? Obrigado.

3 Respostas

K

parece pra mim que é por causa das aspas duplas para identificar como String.

P

Olha pra mim esta aparecendo assim por causa do toString() da classe Gson.

Tente reimplementar o toString() para mostrar os dados da forma como você deseja…

G

Eu consegui resolver de outro jeito, mas gostaria de ver porque acontece isso do código que postei. Resolvi da seguinte forma:

package Controller;

import Model.Bean.AdministratorBean;
import Model.DAO.AdministratorDAO;
import com.google.gson.Gson;
import java.sql.SQLException;
import java.util.List;

public class AdministratorController {
    
    public static String findAll() throws SQLException{
        Gson gson = new Gson();
        
        AdministratorDAO dao = new AdministratorDAO();
        List<AdministratorBean> adm = dao.dataFindAll();

        String gJson = gson.toJson(adm).toString();
        String json = "{total: "+adm.size()+", datas: "+gJson+"}";

        return json.toString();
    }
    
}
Criado 28 de março de 2013
Ultima resposta 28 de mar. de 2013
Respostas 3
Participantes 3