VRAPTOR3 + EXTJS + String JSON Response

Oi, eu preciso voltar a seguinte resposta
"{success:true, ok:true}"

En java:
boolean granted = …;
this.result.use(json()).withoutRoot().from("{success:true, ok:"+granted+"}") .serialize();

Em Javascript recebo a seguinte em ajax responseText
""{success:true, ok:true}"" //não quero “”

Eu preciso do seguinte:
"{success:true, ok:true}"

Crie uma classe que vai fazer exatamente isso para você. Java é orientado à objetos.

Assim:

@SuppressWarnings("unused")
public class GrantedJSONWrapper {
   private final boolean success;
   private final boolean ok;

   public GrantedJSONWrapper (boolean success, boolean ok) {
      this.success = success;
      this.ok = ok;
   }
}

E na hora de usar, assim:

result.use(json()).withoutRoot().from(new GrantedJSONWrapper(true, granted)).serialize();

Eu não quero criar uma classe para cada tipo diferente de resposta.
Não há alternativa?

vc pode usar o body direto:

result.use(Results.http()).body("{\"seu": \"json\"}");

ele só não seta o content type automaticamente.

Certo. Mas também tenho de escapear. VRaptor3 não tem solução direta. = (

Me explica cada um do seu tipo diferente de resposta?

Então, esse é o problema, cada classe tem seu comportamento, sua utilidade, por isso você deveria usar classes com poucas responsabilidades e úteis.

Eu não vejo nenhum problema em fazer isso e, aliás, uso MUITO isso.

Uso uma classe para receber os dados do formulário, outra para persistir no banco e mais outra para retornar os dados para o form, usando ajax. Então, para cada entidade, eu tenho no mínimo 3 classes.
Por questões simples como evitar erros, bugs, falhas de segurança, performance e manutenabilidade.

Se cada um do seus “tipos diferentes de resposta” tiverem campos diferentes, então, sim, uma classe para cada um. Agora se não, não vejo motivo para tal.