【发布时间】:2016-07-25 21:42:34
【问题描述】:
我正在尝试使用StdDeserializer<T> 实现自定义反序列化器。在我的deserialize(JsonParser, DeserializationContext) 方法中,我尝试使用JsonParser 读取Multimap,因为JSON 字符串是{ "toMap": { "a": "b", "a": "c" } }。
假设我处于字段名称为 "toMap" 的位置,我尝试这样做:Multimap<String, Object> rawConditions = jsonParser.readValuesAs(new TypeReference<LinkedListMultimap<String, Object>>() {}); 但它会导致编译错误。它说它们的类型不兼容 - 需要 Multimap<String, Object>,但它正在寻找 Iterator<Object>。
【问题讨论】:
-
您能否更具体一些,并在解析您的示例输入后写下您的
Multimap中应该包含的内容? -
我添加了一个答案。但是,如果您在序列化方面有任何控制权,最好使用 {"a": ["b", "c"]} 而不是 { "a": "b", "a": "c" }