Динамическая JSON-сериализация на основе значения свойства

Я внедряю REST-сервер, используя Spring Boot, JAXB2 и Jackson. Этот сервер поддерживает JSON и XML и основан на официальных спецификациях.

У меня сейчас проблема с сериализацией, специфичная для формата JSON, и я не знаю, как ее можно решить?

Спецификация определяет несколько типов примитивов как строковые, целочисленные и т. Д., Которые могут быть расширены, и в зависимости от этого расширения результат сериализации будет разным.

Классы Java

public class PrimitiveType {

    @XmlAttribute
    private String id
    @XmlElement(name = "extension")
    private List<Extension> extensions = new ArrayList<>();

    // Getters and Setters
}

public class StringType extends PrimitiveType {

    @XmlAttribute
    private String value;

    // Getter and Setter
}

JSON

// Without id and/or extension(s)
"code" : "abc"

// With id and/or extension(s)
"code ": "abc",
"_code": {
    "id": "1",
    "extension" : [ {
        "url" : "http://mydomain/ext/1",
        "valueString" : "abc-1"
    }]
}

У меня нет никаких проблем с XML, но это не то же самое для JSON. Я не знаю, как я могу добавить свойство динамически на том же уровне. Я посмотрел на JsonSerializer, но кажется, что он позволяет изменить сериализацию на самом объекте.

У кого-нибудь была возможность делать подобные вещи раньше?

0 ответов

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