Jackson ObjectMapper将java从字符串序列化为JSON作为namevalue
我有一些字符串,比如:
String value = "123";
当我通过ObjectMapper将此字符串序列化为json时:
objectMapper.writeValueAsString(value);
输出为:
"123"
是否可以使用字符串名称和字符串值写入字符串?期望输出:
"value" : "123"
PS:我不想用一个字段创建DTO对象来序列化一个字符串值
# 1 楼答案
创建地图:
你会得到:
{"value":"123"}
# 2 楼答案
如果你有一个普通的字符串,你会在序列化时得到一个普通的字符串。如果你想把它包装成一个物体,那么就用一张地图来获得最简单的解决方案
将其传递给mapper将产生如下结果:
如果你把地图改成
<String, Object>
,你可以传入几乎任何你想要的东西,甚至是地图中的地图,它们会正确地序列化如果你真的不能使用封闭的大括号,你可以一直使用子字符串,但如果你仍然在序列化为JSON,那将是一个非常奇怪的用例
# 3 楼答案
如果您正在使用java 8,并且希望以自动化的方式进行操作,而无需创建映射或手动输入字符串变量名“value”,那么您需要遵循以下link
# 4 楼答案
您也可以使用Jackson JsonGenerator