我需要序列化json以Map。我儿子长得像这样:
{
items: [{
"name": "Test1",
"value": {
"id": 1,
"count": 5
}
}]
}
我有以下课程:
public class Value {
public int id;
public int count;
}
public class ItemManager {
public Map<String, Value> items;
}
我试着这样反序列化它:
class Main {
public static void main(String... args) {
ObjectMapper mapper = new ObjectMapper();
ItemManager manager = mapper.read(args[0], ItemManager.class);
}
}
但我有以下例外:
com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `test.ItemManager` out of START_ARRAY token
at [Source: (String)"{
我需要把 name
作为一把钥匙 value
作为一种价值。有人能帮忙吗?
1条答案
按热度按时间iklwldmw1#
这里有一个简单的自定义反序列化程序,可以执行您想要的操作(我使用了jackson
v2.12.4
) :我已经创建了一个静态
Value
课堂ItemManager
类并示例化items
构造函数中的属性(new HashMap<>()
).然后,您可以注册并使用此反序列化程序,如下所示: