Question

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?

Était-ce utile?

La solution

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top