使用Jackson反序列化为Map

Kel*_*ung 1 java json jackson

我有一个带有两个属性的JSON对象:"key"是一个字符串,"value"可以反序列化为Java bean.

{ "key": "foo", "value": "bar" }
Run Code Online (Sandbox Code Playgroud)

问题是,给定一个这样的对象列表,我可以将它反序列化为一个映射吗?

[{"key": "foo1", "value": "bar1"}, {"key": "foo2", "value": "bar2"}] -> Map<String, String>
Run Code Online (Sandbox Code Playgroud)

目前使用Jackson-databind 2.1

Mic*_*ber 6

您可以轻松地将以上JSON转换为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);
    }
}
Run Code Online (Sandbox Code Playgroud)

以上程序打印:

[{key=foo1, value=bar1}, {key=foo2, value=bar2}]
Run Code Online (Sandbox Code Playgroud)

  • 这不是他想要的. (6认同)