java - JsonMappingException:无法从 VALUE_STRING 令牌中反序列化 java.util.ArrayList 的实例
问题描述
我尝试从 String 反序列化 java.util.ArrayList 的实例
我的代码是:
@PostMapping("/queue_details")
public void getQueueDetailsInfo(@RequestBody String detailInfo) throws JSONException, IOException, JsonParseException, JsonMappingException {
ObjectMapper mapper = new ObjectMapper();
List<DetailedReport> detailedReport = mapper.readValue(detailInfo, new TypeReference<List<DetailedReport>>() {
});
但是有例外:
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of VALUE_STRING token
我打印出detailInfo并得到:
"[{\"provider\":\"GlobalTelecom\",\"trunk\":486,\"Answer\":0,\"Busy\":2,\"No Answer\":0},{\"provider\":\"GlobalTelecom\",\"trunk\":512,\"Answer\":2,\"Busy\":0,\"No Answer\":1},{\"provider\":\"GlobalTelecom\",\"trunk\":700,\"Answer\":2,\"Busy\":1,\"No Answer\":1},{\"provider\":\"Telia\",\"trunk\":123,\"Answer\":2,\"Busy\":0,\"No Answer\":1},{\"provider\":\"Telia\",\"trunk\":456,\"Answer\":1,\"Busy\":2,\"No Answer\":1},{\"provider\":\"Telia\",\"trunk\":789,\"Answer\":2,\"Busy\":0,\"No Answer\":0},{\"provider\":\"TotalNetwork\",\"trunk\":730,\"Answer\":1,\"Busy\":2,\"No Answer\":2},{\"provider\":\"TotalNetwork\",\"trunk\":840,\"Answer\":2,\"Busy\":1,\"No Answer\":0},{\"provider\":\"TotalNetwork\",\"trunk\":920,\"Answer\":1,\"Busy\":1,\"No Answer\":2}]"
但是当我这样做时
@PostMapping("/queue_details")
public void getQueueDetailsInfo(@RequestBody String detailInfo) throws JSONException, IOException, JsonParseException, JsonMappingException {
detailInfo = "[{\"provider\":\"GlobalTelecom\",\"trunk\":486,\"answer\":0,\"busy\":2,\"noAnswer\":0}," +
"{\"provider\":\"GlobalTelecom\",\"trunk\":512,\"answer\":2,\"busy\":0,\"noAnswer\":1}," +
"{\"provider\":\"GlobalTelecom\",\"trunk\":700,\"answer\":2,\"busy\":1,\"noAnswer\":1}," +
"{\"provider\":\"Telia\",\"trunk\":123,\"answer\":2,\"busy\":0,\"noAnswer\":1}," +
"{\"provider\":\"Telia\",\"trunk\":456,\"answer\":1,\"busy\":2,\"noAnswer\":1}," +
"{\"provider\":\"Telia\",\"trunk\":789,\"answer\":2,\"busy\":0,\"noAnswer\":0}," +
"{\"provider\":\"TotalNetwork\",\"trunk\":730,\"answer\":1,\"busy\":2,\"noAnswer\":2}," +
"{\"provider\":\"TotalNetwork\",\"trunk\":840,\"answer\":2,\"busy\":1,\"noAnswer\":0}," +
"{\"provider\":\"TotalNetwork\",\"trunk\":920,\"answer\":1,\"busy\":1,\"noAnswer\":2}]";
ObjectMapper mapper = new ObjectMapper();
List<DetailedReport> detailedReport = mapper.readValue(detailInfo, new TypeReference<List<DetailedReport>>() {
});
没有发生异常。为什么?
解决方案
推荐阅读
- uinavigationcontroller - 如何从 mapkit 注释导航 - SwiftUI/Xcode 11
- python - 在数据框中添加一行并命名
- matplotlib - Matplotlib 热图真的很小
- git - 为什么我的来自 VM 的 Git 提交显示为来自完全不同的人?
- java - java类型擦除如何处理'?
- node.js - Regix:从 MediaWiki XML 文档中提取模板列表
- flutter - 如何将 Firestore DocumentSnapshot 转换为 dart 对象实例
- python - 在python中提取href
- haskell - Haskell 中的递归定点函数
- javascript - 'class' 语法在 javascript 中是如何工作的?