我正在尝试将Json数组反序列化为对象的ArrayList.我找到了一些关于我正在尝试做什么的文档,但是我在编译时遇到了错误.
以下是我试图用Jackson 2.2.2来解决它的方法:
ArrayList<Friends> list = objectMapper.readValue(result, new TypeReference<ArrayList<Friends>>() {});
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
The method readValue(String, Class<T>) in the type ObjectMapper is not applicable for the arguments (String, new TypeReference<ArrayList<Friends>>(){})
Run Code Online (Sandbox Code Playgroud)
我猜测我读过的一些参考文献是基于杰克逊的旧版本.如何在Jackson 2.2 +中实现这一目标
请尝试以下方法:
JavaType type = objectMapper.getTypeFactory().constructCollectionType(ArrayList.class, Friends.class);
ArrayList<Friends> friendsList = objectMapper.readValue(result, type);
Run Code Online (Sandbox Code Playgroud)
请注意,我从以下答案中提取了这个:Jackson和泛型类型参考
从杰克逊1.3(前一段时间)开始,他们建议你使用TypeFactory.
编辑
在进一步检查时,你上面所做的就是为我工作......我能够传入一个TypeReference子类readValue,一切正常.你确定你有合适的TypeReference进口类型吗?通常这些类型的错误是偶然导入错误的类型(其他一些库可能有一个TypeReference类).
| 归档时间: |
|
| 查看次数: |
2871 次 |
| 最近记录: |