ДЖЕКСОН, как не включать обертку для поля? - PullRequest
3 голосов
/ 02 февраля 2012

ДЖЕКСОН, как не включать оболочку для поля?

public  class AuthType {
    Map<String,String> properties;

    public Map<String, String> getProperties() {
        return properties;
    }

    public void setProperties(Map<String, String> properties) {
        this.properties = properties;
    }

}

Возвращает

{"properties":{"authType":"XYZ"}}

, но я хочу иметь

{"authType":"XYZ"}

Любойаннотация?

Похоже, что нет поддержки для него http://jira.codehaus.org/browse/JACKSON-765 любой обходной путь?

Ответы [ 3 ]

1 голос
/ 14 февраля 2012

Начиная с версии Jackson 1.9, вы можете использовать аннотацию @ JsonUnwrapped

public  class AuthType {
    Map<String,String> properties;

    @JsonUnwrapped
    public Map<String, String> getProperties() {
        return properties;
    }

    public void setProperties(Map<String, String> properties) {
        this.properties = properties;
    }
}
0 голосов
/ 02 февраля 2012

Вы можете добавить @JsonAnyGetter на карту; и если вам нужно прочитать его обратно, определите соответствие @JsonAnySetter.

0 голосов
/ 02 февраля 2012

Если ваш класс на самом деле такой простой, используйте пользовательские сериализаторы Джексона или просто сериализуйте его как дерево .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...