1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Serializer Gson Calendar

E ai pessoal tudo beleza. Estou quebrando a cabeça para resolver um problema. Estou desenvolvendo um webservice e uma aplicação utilizando Vraptor 4. O problema esta sendo no cliente. O vraptor utiliza o gson para serializar e deserializar os objetos. Quando crio um objeto json utilizando Gson e envio para o webservice, o mesmo me retorna um erro. Esse erro esta relacionado a um parâmetro calendar que estou tentando passar. Meu webservice esta esperando um formato de calendar e meu gson esta mandando outro formato. Andei pesquisando e têm duas soluções, ou implemento a classe JsonSerializer no meu cliente ou implemento a Classe JsonDeserialize no meu webservice, optei pela primeira opção, mas mesmo assim não esta funcionando.

Formato webservice(Vraptor): {"data": "2015-08-06T15:56:09-03:00"}

Formato enviado pelo cliente: {"data {"year":2015,"month":7,"dayOfMonth":10,"hourOfDay":23,"minute":29,"second":49}}

Solução que estou tentando implementar do lado do cliente:

GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(Calendar.class, new CalendarSerialize());
final Gson gson = builder.create();

public class CalendarSerialize implements JsonSerializer<Calendar>{

    @Override
    public JsonElement serialize(Calendar src, Type arg1,JsonSerializationContext arg2) {
        return src == null ? null : new JsonPrimitive(src.getTime().toString());
    }

}

Mas infelizmente não muda a resposta do Json. Se eu fizer um JsonSerializer de Date funciona, alguem tem alguma solução ?

  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags rest vraptor ou faça a sua própria pergunta.