vRaptor - Result JSON [RESOLVIDO]

7 respostas
K

Minha dúvida é a seguinte…

result.use(json()).from(object).serialize();

Isso vai gerar um JSON do “object” na resposta…
Porém, eu preciso customizar esse JSON de retorno, sendo ele uma String Java que eu crio na mão.

Como faço esse retorno?

Tentei utilizar HttpServletResponse mas dá 404, acredito que devido a convenção do vRaptor…

7 Respostas

Rafael_Guerreiro

Você pode criar uma classe que recebe esse objeto e seta os atributos que você precisa:

public class ObjJSON {
   private final long id;
   private final String name;

   public ObjJSON (Obj obj){ // Converte de obj para ObjJSON
      this.id = obj.getId();
      this.name = obj.getName();
   }
}

// chamada
result.use(Results.json()).from(new ObjJSON(obj)).serialize();
K

Mas se eu já tenho o “JSON” em String… não há um meio de dar o response dele?

K

Alguém?!?!?!

Rafael_Guerreiro

Você pode criar uma JSP com o nome da sua action, assim:

// Action
@Get("/get/json/")
public String getJSON (){
   return service.getJSON();
}

// O nome dessa JSP DEVE SER: getJSON.json.jsp
// JSP
${string}

Assim o VRaptor reconhece que é um JSON.

K

Ok. Vou ver oq faço. Vlw!

Lucas_Cavalcanti

se vc quer colocar uma string já gerada pode usar:

result.use(Results.http()).body(oJsonAqui);
K

Opa!
Agora sim RESOLVIDO. Vlw.

Criado 30 de outubro de 2012
Ultima resposta 1 de nov. de 2012
Respostas 7
Participantes 3