【问题标题】:JSON Serialization: Class name to be picked from annotationJSON序列化:要从注释中选择的类名
【发布时间】:2017-04-02 08:21:44
【问题描述】:

任何人都可以帮助我进行 JSON 序列化。我需要使用 Annotation 更改限定的类名。我不必使用 Map 或其他类。名称应从 Annotation 中选取。

-> 我使用的注解是

@JsonTypeInfo(use = Id.CLASS, include = As.PROPERTY, property="type") 私有对象菜单;

-> 我能得到的 JSON 是

“菜单”:[“java.util.ArrayList”,[{ "name" : "Menu_Test", “数据”:“菜单_123” } ] ],

-> 但我希望它是这样的。

“菜单”:[“列表”,[{ "name" : "Menu_Test", “数据”:“菜单_123” } ] ],

【问题讨论】:

    标签: java json annotations jackson


    【解决方案1】:

    您应该使用JsonTypeInfo.Id.NAME,然后您需要使用附加注释指定每个类的名称,例如:

    @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
    @JsonSubTypes({
        @JsonSubTypes.Type(value = ArrayList.class, name = "list")
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多