java - JSON 解析错误:无法反序列化 ArrayList 的实例
问题描述
我正在尝试将 JSON 发送到 POST bodyRequest 服务,以将此信息用作 Java ArrayList 或类似的东西。当我尝试这样做时,我收到一个反序列化错误
这是我的 JSON:
{信息:[ {字段:“提供的期间”,表格:“课程”,列:“学术水平*”},{字段:“默认评分基础*”,表格:“课程”,列:“默认提供百分比” }, {fields: "Allowed Locations", tables: "Courses", columns: "Allowed to Offer"} ] }
这是我的 POST bodyRequest 服务
@ResponseBody
@PostMapping("/dataMapping/update/table")
public ResponseEntity<Object> updateDataMappingTable(@RequestBody List<UpdateDataMapping> information) {
try {
String update = this.dataMappingService.update(information);
return new ResponseEntity<Object>(update, HttpStatus.OK);
} catch (Exception e) {
Response response = new Response();
response.setError(e.getMessage());
return new ResponseEntity<Object>(response, HttpStatus.OK);
}
}
我的 UpdateDataMapping 类看起来像:
public class UpdateDataMapping {
public String fields;
public String tables;
public String columns;
public UpdateDataMapping() {
}
public UpdateDataMapping(String fields, String tables, String columns) {
this.fields = fields;
this.tables = tables;
this.columns = columns;
}
public String getFields() {
return fields;
}
public void setFields(String fields) {
this.fields = fields;
}
public String getTables() {
return tables;
}
public void setTables(String tables) {
this.tables = tables;
}
public String getColumns() {
return columns;
}
public void setColumns(String columns) {
this.columns = columns;
}
}
这是我的错误:
.wsmsDefaultHandlerExceptionResolver:已解决 [org.springframework.http.converter.HttpMessageNotReadableException:JSON 解析错误:无法反序列
java.util.ArrayList<com.kastech.model.UpdateDataMapping>
化 START_OBJECT 令牌的实例;嵌套异常是 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法java.util.ArrayList<com.kastech.model.UpdateDataMapping>
在 [Source: (PushbackInputStream); 处反序列化超出 START_OBJECT 令牌的实例;行:1,列:1]]
如果有人可以帮助我,我将不胜感激。
解决方案
您的 JSON 示例显示您的数组是在information
对象内传递的。您正在查看当前的堆栈跟踪,因为 Jackson 无法找到反序列化您的请求负载的适当方法。
或者,您可以将请求 JSON 更改为简单的列表
[ {fields: "Periods Offered", tables: "Courses", columns: "Academic Level*"}, {fields: "Default Grading Basis*", tables: "Courses", columns: "Default Offering Percentage"}, {fields: "Allowed Locations", tables: "Courses", columns: "Allowed to Offer"} ]
或者你可以有一个 POJO 代表那个information
对象
class UpdateMappingList {
List<UpdateDataMapping> information;
...
}
推荐阅读
- react-native - 如何将动态 URL 设置为 webview?
- javascript - 保存“办公时间”数据的正确方法是什么?
- python - 合并数据框不是基于索引而是值
- asp.net - 链接到 GridView asp 中的虚拟目录:HyperlinkField
- php - Laravel 7.15 视图中的 UUID 无法正确显示
- android - 如果单击开始按钮,则不会继续
- reactjs - React-plotly:带有选择器的时间序列范围滑块的滑动速度很慢
- java - ServerSocket 中的 accept() 接受客户端请求的速度有多快?
- mongodb - 如何在mongo中使用IN运算符和RANGE
- javascript - 如何等待承诺解决然后获取值并将其放入其他函数