Java EE JAXRS: переносимый способ маршелловской / не маршелловой JSON с настраиваемыми именами свойств в API - PullRequest
0 голосов
/ 05 сентября 2018

Я работаю над проектом Java EE 8. Я использую Eclipse Photon в качестве среды разработки и WildFly 13 в качестве локального сервера разработки. Проблема в том, что JSON ввода / вывода, с которым нам приходится иметь дело, имеет имена свойств в PascalCase вместо camelCase . Например:

{
    "name": "John Doe",
    "age": 24
}

Этот формат отлично работает при использовании в качестве входных данных для API JAX-RS. Но нам нужно облегчить это вместо:

{
    "Name": "John Doe",
    "Age": 24
}

Также нам нужно сгенерировать вывод в следующем формате:

{
    "Status": 1,
    "Msg": "success"
}

Должен быть способ (например, @JsonProperty), который позволяет настраивать имена свойств.

1 Ответ

0 голосов
/ 05 сентября 2018

Wildfly использует реализацию RESTEasy JAX-RS, которая построена поверх Джексона. Вы можете использовать специфичные для Джексона аннотации в своем проекте, если целевым поддерживаемым сервером приложений является Wildfly. Если вы используете Maven для создания своего развертывания, вы можете добавить Джексона в качестве предоставленной зависимости (точно так же, как jee api jars)

Вместо этого вы можете использовать аннотации JAXB и настроить Jackson, используемый RESTEasy, для их использования, но это позволит избежать использования Jackson как зависимости от времени компиляции, ваш пакет будет по-прежнему зависеть от Jackson

В качестве альтернативы вы можете явно включить Джексона как зависимость времени выполнения и написать программы чтения и записи тела сообщения, если для вас важна переносимость сервера

...