使用 Jackson 反序列化为 Map [英] Using Jackson to deserialize into a Map
本文介绍了使用 Jackson 反序列化为 Map的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个具有两个属性的 JSON 对象:key"是一个字符串,value"可以反序列化为 Java bean.
I have a JSON object with two attributes: "key" which is a string, and "value" which can be deserialized into a Java bean.
{ "key": "foo", "value": "bar" }
问题是,给定这些对象的列表,我可以将其反序列化为 Map 吗?
The question is, given a list of such objects, can I deserialize it into a Map?
[{"key": "foo1", "value": "bar1"}, {"key": "foo2", "value": "bar2"}] -> Map<String, String>
目前使用 Jackson-databind 2.1
Currently using Jackson-databind 2.1
推荐答案
您可以轻松地将上面的 JSON 转换为 List
:
You can easily convert above JSON to List<Map<String, String>>
:
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.CollectionType;
public class JacksonProgram {
public static void main(String[] args) throws Exception {
ObjectMapper mapper = new ObjectMapper();
CollectionType mapCollectionType = mapper.getTypeFactory().constructCollectionType(List.class, Map.class);
List<Map<String, String>> result = mapper.readValue(json, mapCollectionType);
System.out.println(result);
}
}
以上程序打印:
[{key=foo1, value=bar1}, {key=foo2, value=bar2}]
这篇关于使用 Jackson 反序列化为 Map的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文