Boa tarde, estou com o seguinte problema:
Possuo uma Classe A, e dentro dessa classe A possuo um ArrayList com Classe B. Quero retornar em um Webservice um JSON com esses dados mas da erro devido ao ArrayList dentro da classeA, por exemplo:
[
{
nome: "nome1",
sobreNome: "sobre1"
classeB: [
{
nomeInterno: "teste"
}
]
},
{
nome: "nome2",
sobreNome: "sobre2"
classeB: [
{
nomeInterno: "teste2"
}
]
}
]
Sei que com um ArrayList simples é possível transformar em JSON assim:
ArrayList<String> mylist = new ArrayList<String> ();
mylist.add("abc");
mylist.add("cfd");
mylist.add("ert");
mylist.add("fg");
mylist.add("ujk");
String json = new Gson().toJson(mylist);
Porém, quando o ArrayList está encapsulado dentro da Classe a ser transformada em JSON como deve ser feito?
Edit:Estou usando API de JSON da google
Olá, primeiramente vc deveria postar o erro que obteve. Não sei como está configurado seu webservice, mas pq vc não usa um @Produces(MediaType.APPLICATION_JSON) no método.
Olá, já estou usando assim, pelo que parece se eu colocar um retorno de string e estiver com application_json já transforma em JSON, é isso mesmo?
Nops, vc não coloca retorno tipo String pra ele gerar o json. O JSON é gerado a partir de um Objeto, a ideia é que vc desenvolva seus métodos com base na OO sem se preocupar com conversão, ai qnd vc usa aquela anotação ele converte o retorno em um JSON, seu retorno pode ser um Map ou outro objeto qualquer (não String, pq n tem lógica converter String pra json).
Ok, eu tentei de várias formas e não deu certo. Coloquei no pastebin todas as possbilidades que consegui encontrar e nenhuma deu certo, pode dar uma olhada e ver se consegue ajudar?
https://pastebin.com/GL30xBwX
É um trabalho da faculdade, a gente nem precisava usar isso mas meu grupo está usando porque queremos aprender mais do que o pouco que ensinam, então estou tentando fazer sozinho e ta complicado suahsuhausha
Consegui descobrir o motivo de que eu não estava conseguindo.
Ao consultar a Classe A,a lista de Classe B é retornada null, e ao retornar o JSON no WebService, ocorria NullPointer devido a listar estar nula.
Para resultar coloquei um new ArrayList<>(); antes de fazer o retorno da API.
Está correto o Hibernate retornar null para a lista da Classe B nesse caso?