java - Jackson - 为 Map 键包含 JsonTypeInfo
问题描述
在 Java 中,我需要序列化一个为Map<Object, Object>
. 我想在生成的 Json 中包含一个类类型信息,我可以通过@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
. 但是,类型信息仅包含在映射值中,而不包含在键中。
例如:
@Data
public class FunnyObject {
@JsonProperty(value = "fields")
@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
private Map<Object, Object> fields = new HashMap<>();
}
初始化:
Map<Object, Object> fields = new HashMap<>();
fields.put("Date", new Date());
fields.put(new Date(), "ups");
fields.put(MyTypes.TYPE_B, "Reversed");
FunnyObject funnyObject = new FunnyObject();
funnyObject.setFields(fields);
MyTypes 枚举:
public enum MyTypes {
TYPE_A("hello"),
TYPE_B("World");
private String txt;
MyTypes(String txt) {
this.txt = txt;
}
}
生成的 Json 是这样的,其中仅包含值的类类型信息。Howe 我也可以将它包含在 Key 中?
{
"fields": {
"2021-01-25T13:28:18.718+00:00": "ups",
"TYPE_B": "Reversed",
"Date": [
"java.util.Date",
1611581298718
]
}
}
解决方案
我猜 Michał Ziober 在我原来的帖子的评论中回答了这个问题
“JSON 密钥始终是一个字符串”
推荐阅读
- c++ - C++ 中是否有类似 C 尖锐区域的东西
- c++ - CTabCtrl DeleteItem 并非在所有情况下都有效
- c - 一个线程显示多个线程
- ios - 如果 App 因在代码中使用 UIWebView 而被拒绝,如何解决?
- r - 重复计算具有相同根的变量
- python - 如何获取存储在数据库中的图像并使用 Flask 在 HTML 页面上显示它们?
- javascript - 如何在R中自定义highcharts图
- rest - 卷曲命令不适用于 Zapier REST 挂钩
- python - 值之间的 NaN 限制的差异
- reactjs - (下一步/反应)通过单击子组件中的按钮刷新 SWR - 我可以使用回调吗?(功能对功能)