gpt4 book ai didi

json - 在 jackson 序列化的所有对象中包含类名

转载 作者:行者123 更新时间:2023-12-04 14:12:53 27 4
gpt4 key购买 nike

如何在所有序列化对象中包含类名?例如。将“_class:'MyClass'”添加到输出值。是否有一些全局设置?我不想在 pojo 类中添加任何注释。

我将它与 spring4 webmvc @ResponseBody(仅 json 格式)一起使用。

最佳答案

您需要使用 @JsonTypeInfo 注释您的类型注释并配置类型信息应如何序列化。引用 this page以供引用。

例子:

public class JacksonClassInfo {
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "__class")
public static class Bean {
public final String field;

@JsonCreator
public Bean(@JsonProperty("field") String field) {
this.field = field;
}

@Override
public String toString() {
return "Bean{" +
"field='" + field + '\'' +
'}';
}
}

public static void main(String[] args) throws IOException {
Bean bean = new Bean("value");
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(bean);
System.out.println(json);
System.out.println(mapper.readValue(json, Bean.class));
}
}

输出:
{
"__class" : "stackoverflow.JacksonClassInfo$Bean",
"field" : "value"
}
Bean{field='value'}

关于json - 在 jackson 序列化的所有对象中包含类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24453703/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com