Как программно настроить Джерси для использования Джексона для сериализации JSON? - PullRequest
2 голосов
/ 12 марта 2012

Я использую Джерси вместе с Grizzly для создания веб-сервиса JSON.Я инициализирую его следующим образом:

    final ResourceConfig rc = new PackagesResourceConfig("amplify.api.resources");
    rc.getProperties().put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
    return GrizzlyServerFactory.createHttpServer(BASE_URI, rc);

У меня нет файла web.xml.Я заметил, что Джерси отображал списки из одного элемента как «элемент», а не «[элемент]», как я ожидал.Похоже, это потому, что Джерси использует сопоставитель POJO-> JSON, отличный от Джексона, и по причинам, которые меня не устраивают, они подумали, что будет хорошей идеей автоматически развернуть одноэлементные списки.объяснения того, как заставить Джерси использовать Джексона путем настройки файла web.xml, но поскольку у меня нет файла web.xml, я не уверен, как это сделать.

Может кто-нибудь объяснить, как я могу программнонастроить Джерси на использование Джексона?

Ответы [ 2 ]

1 голос
/ 17 января 2013

У меня есть ответ от как программно включить отображение POJO в Джерси с использованием Grizzly2?

Идея состоит в том, чтобы добавить библиотеку jersey-json в ваше приложение.

<dependency>
    <groupId>com.sun.jersey</groupId>
    <artifactId>jersey-json</artifactId>
    <version>${jersey.version}</version>
</dependency>
0 голосов
/ 13 марта 2012

Посмотрите на JacksonJsonProvider in модуль Jackson Jax-RS .

Вам необходимо подключить его (или подкласс, такой как JacksonJaxbJsonProvider) в контейнер IoC, признанный на Джерси (по умолчанию его собственный, но я лично предпочитаю Guice), или иначе зарегистрировать его как @Provider* 1008. *

...