为什么序列化在对象内部的JSONObject没有按预期工作?
class Random {
String name;
JSONObject json;
}
JSONObject json= new JSONObject();
json.put("key", "value");
Random random = new Random("name", json);
new ObjectMapper().writeValueAsString(); ->
结果产生:{"name":"name", {"empty":false,"mapType":"java.util.HashMap"}}
预期结果:{"name":"name", "json": {"key":"value"}}
如何解决这种行为?
2条答案
按热度按时间f5emj3cl1#
您可以创建自己的序列化程序:JSONObjectSerializer并在ObjectMapper中注册它。再次假设您计划只使用“json”字段中具有键值的Map。
这段代码将产生输出:
{“name”:“name”,“json”:{“key”:“value”}}
n1bvdmb62#
如果你计划只在Map中的“json”字段中包含键值,你可以尝试这种方法:
而不是JSONObject保持一个Map。
序列化的代码将使用json.toMap()