Spring Boot 解决 'HttpMessageNotReadableException' 错误:正确传递 JSON List 参数
如果您的 Spring Boot 应用遇到 'HttpMessageNotReadableException' 错误,特别是当处理 JSON List 格式的输入参数时,很可能是因为 Spring Boot 无法直接将 JSON 数组映射到 List 对象。
为了解决这个问题,您需要按照以下步骤操作:
-
创建 Java 类表示 JSON 输入参数:
首先,创建一个 Java 类来表示您的 JSON 数据结构。例如,如果您的列表包含字符串,您可以创建以下类:
public class StringList { private List<String> items; public List<String> getItems() { return items; } public void setItems(List<String> items) { this.items = items; } } -
使用 @RequestBody 注释接收 JSON:
在您的控制器方法中,使用
@RequestBody注释来接收 JSON 格式的输入参数。例如:@PostMapping('/items') public void processItems(@RequestBody StringList stringList) { List<String> items = stringList.getItems(); // 处理您的列表项... } -
在客户端构建并发送 JSON:
在您的客户端代码中,将列表项放入一个 JSON 对象中,并将其作为请求正文发送。例如,使用 JavaScript:
var items = ['item1', 'item2', 'item3']; var data = { 'items': items }; var xhr = new XMLHttpRequest(); xhr.open('POST', '/items'); xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8'); xhr.send(JSON.stringify(data));
这是一个基本示例,您需要根据实际应用程序和技术栈进行相应的调整。通过创建 Java 类来映射 JSON 结构,并使用 @RequestBody 注释,您可以轻松解决 'HttpMessageNotReadableException' 错误,并正确接收和处理 JSON List 参数。
原文地址: https://www.cveoy.top/t/topic/fY9g 著作权归作者所有。请勿转载和采集!