Вопрос

I'm using Jersey for my RESTful services and Genson to perform my JSON/POJO conversion. There's no setup for Genson, I just drop it into the classpath and it just works, except that it throws an error on date parsing because the format is unexpected.

Now, if I were to do this as a servlet, using Gson, I set the date format on a Gson instance that I maintain. That forces the parse of the POJO to use the correct format. I see that Genson has a similar interface, but I don't know how to get the instance from the Jersey servlet service or maybe the Spring context so that I cat set the format.

So, the short question is: how do I set a date format for Genson when started through Jersey?

Это было полезно?

Решение

To configure Genson instances you can use Genson.Builder class (it is similar to Gson on this point). Then you have to inject it with Jersey.

@Component
@Provider
public class GensonProvider implements ContextResolver<Genson> {
   private final Genson genson = new Genson.Builder().setDateFormat(yourDateFormat).create();

    @Override
   public Genson getContext(Class<?> type) {
     return genson;
   }
}

You might also want to have a look at how Genson is integrated into Jersey here.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top