我需要将 JSON 解析的映射传递到具有以下签名的某个方法中:
QUEUE.sendMsg(Map<String, String> data);
不幸的是,我无法控制上述方法,杰克逊给了我在Map<String, Object>
.
我需要一个Map<String, String>
地方
- 对于原始 JSON 类型,而不是 Integer、Long、Boolean,我想要它的 toString() 转换值。
- 对于 List/Map 等复杂的 JSON 类型,将结果以原生 JSON 格式存储在 String 中。
例如,如果 JSON 输入是
{
"name" = "John",
"marked" = false,
"age" = 30,
"tags" = [ "work", "personal" ],
"meta" = { "k1" : "v1", "k2" : "v2" },
}
我想要Map<String, String>
一个
map.get("name") returns "John",
map.get("marked") returns "false",
map.get("age") returns "30",
map.get("tags") returns "[ \"work\", \"personal\" ]",
map.get("meta") returns "{ \"k1\" : \"v1\", \"k2\" : \"v2\" }"
有没有办法实现这个目标?
不幸的是,我几乎是 Java 新手,并且对 Jackson 没有先验知识(我必须使用 Jackson 来解决这个问题)。
谢谢你。