Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSON序列化:从注释中选取的类名_Java_Json_Annotations_Jackson - Fatal编程技术网

Java JSON序列化:从注释中选取的类名

Java JSON序列化:从注释中选取的类名,java,json,annotations,jackson,Java,Json,Annotations,Jackson,有人能帮我做JSON序列化吗。我需要使用注释更改限定的类名。我不必使用Map或其他类。名称应从注释中选取 ->我使用的注释是 @JsonTypeInfo(use=Id.CLASS,include=As.PROPERTY,PROPERTY=“type”) 私有对象菜单 ->我能得到的JSON是 “菜单”:[“java.util.ArrayList”,[{ “名称”:“菜单测试”, “数据”:“菜单\u 123” }]] ->但我希望它是这样的 “菜单”:[“列表”,[{ “名称”:“菜单测试”,

有人能帮我做JSON序列化吗。我需要使用注释更改限定的类名。我不必使用Map或其他类。名称应从注释中选取

->我使用的注释是

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

->我能得到的JSON是

“菜单”:[“java.util.ArrayList”,[{ “名称”:“菜单测试”, “数据”:“菜单\u 123” }]]

->但我希望它是这样的

“菜单”:[“列表”,[{ “名称”:“菜单测试”, “数据”:“菜单\u 123”
}]],

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

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

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

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