@JsonProperty игнорируется в перечислении

У меня есть простое перечисление со свойствами, OK и FAULT. Я пытаюсь вернуть значение в нижнем регистре при возврате его как объекта Json с помощью аннотации @JsonProperty. Сначала я подумал, что проблема в том, что я смешивал java.xmlbind.annotation с com.fasterxml, но после удаления java.xmlbind он все еще не работает.

Объект, использующий это перечисление, всегда показывает либо OK, либо FAULT с запросами json, а не ok и fault, как при запросе XML.

Использование Джексона 2.5.x

Любые идеи или предложения будут с благодарностью.

import javax.xml.bind.annotation.XmlEnum;
import javax.xml.bind.annotation.XmlEnumValue;

import com.fasterxml.jackson.annotation.JsonProperty;

/**
 * 
 */
@XmlEnum
public enum RequestStatusType {
    /**
     * Generic server A-OK ;)
     */
    @XmlEnumValue(value = "ok")
    @JsonProperty(value = "ok") 
    OK,

    /**
     * Generic unknown server fault
     */
    @XmlEnumValue(value = "fault")
    @JsonProperty(value = "fault") 
    FAULT;

    /**
     * Returns a RequestStatusType based on the string passed in 
     * @param requestStatusType the requestStatusType to get
     */
    public static RequestStatusType getRequestStatus (String requestStatusTypeStr) {
        try {
            return valueOf( requestStatusTypeStr.toUpperCase() );
        } catch (Exception e) {
            return null;
        }
    }

    /* (non-Javadoc)
     * @see java.lang.Enum#toString()
     */
    @Override
    public String toString() {
        return super.toString().toLowerCase();
    }
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
502
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вам нужно проверить версию Джексона. Ваш способ работает только с Jackson 2.7.2 или новее. См. Когда используется свойство @JsonProperty и для чего оно используется? . Надежда может помочь.

Спасибо, когда я читал документацию по API, я понял, что загружаю Jackson 2.5, как только я обновил его, это сработало.

pcroadkill 31.05.2019 15:55

Другие вопросы по теме