使用 Jackson 反序列化为 Map [英] Using Jackson to deserialize into a Map

查看:57
本文介绍了使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆