Пользовательская JSON-сериализация для List <MyClass>с Джексоном - PullRequest
1 голос
/ 23 февраля 2012

MyClass выглядит следующим образом:

@Getter
class MyClass
{
    private final DateTime start;
    private final DateTime end;
}

Я хочу, чтобы список сериализовался в JSON с Джексоном, но формат не соответствует ожидаемому.В настоящее время я копаю документы Джексона, но они немного сложны для первого чтения.

Теперь вывод JSON:

[ {
   "end" : "2012-02-16T13:59:59.000+01:00",
   "start" : "2012-02-16T13:35:42.000+01:00"
 }, {
   "end" : "2012-02-16T16:59:59.000+01:00",
   "start" : "2012-02-16T16:00:00.000+01:00"
 } ]

Но я хочу, чтобы это было:

[ [ "2012-02-16T13:59:59.000+01:00", "2012-02-16T13:35:42.000+01:00"],
[ "2012-02-16T16:59:59.000+01:00", "2012-02-16T16:00:00.000+01:00" ] ]

Поэтому не печатайте имена членов и не заменяйте внутренний {} на [].

1 Ответ

7 голосов
/ 23 февраля 2012

@JsonValue аннотация это то, что вам нужно: http://jackson.codehaus.org/1.0.1/javadoc/org/codehaus/jackson/annotate/JsonValue.html

class MyClass {
    ...
    @JsonValue
    private DateTime[] toValue() {
        return new DateTime[] {start, end};
    }
}

Это говорит Джексону, как следует обрабатывать MyClass при сериализации в JSON.

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