基于属性值的动态JSON序列化

时间:2017-10-09 09:00:49

标签: java json jackson jaxb2 hl7-fhir

我正在使用Spring Boot,JAXB2和Jackson实现REST服务器。该服务器支持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 个答案:

没有答案