任何人都可以帮助我进行 JSON 序列化吗?我需要使用注释更改限定类名。我不必使用 Map 或其他类。名称应从注释中选取。
->我使用的注释是
@JsonTypeInfo(use = Id.CLASS, include = As.PROPERTY, property ="type") 私有(private)对象菜单;
-> 我能得到的 JSON 是
“菜单”:[“java.util.ArrayList”,[ { “名称”:“菜单_测试”, “数据”:“菜单_123” } ] ],
-> 但我希望它是这样的。
“菜单”:[“列表”,[ { “名称”:“菜单_测试”, “数据”:“菜单_123” } ] ],
最佳答案
您应该使用JsonTypeInfo.Id.NAME
,然后您需要使用附加注释指定每个类的名称,例如:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = ArrayList.class, name = "list")
})
关于java - JSON序列化: Class name to be picked from annotation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43166197/