【发布时间】:2021-10-18 15:53:12
【问题描述】:
我的 RestController 中有如下 API 方法
@PostMapping("/asd")
public ResponseEntity<String> asd(@RequestBody MyParams params) { ... }
MyParams 类如下。
public class MyParams implements Serializable {
public List<Long> ids;
public List<String> ignoredTypes;
public Map<String, List<String>> aMapping;
}
在邮递员中,我传递一个 JSON 字符串,如
{
"ids": [28712, 344248],
"ignoredTypes": [],
"aMapping": "{\"Person\":[\"name\",\"age\"],\"Title\":[\"start\",\"end\"]}",
}
我收到一个错误提示
2021-08-16 18:25:53.953 警告 4164 --- [io-8080-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver :已解决 [org.springframework.http.converter.HttpMessageNotReadableException: JSON解析错误:无法构造实例
java.util.LinkedHashMap(尽管至少存在一位创作者):没有 从字符串反序列化的字符串参数构造函数/工厂方法 值('{“人”:[“姓名”,“年龄”],“标题”:[“开始”,“结束”]}');嵌套的 例外是 com.fasterxml.jackson.databind.exc.MismatchedInputException:不能 构造java.util.LinkedHashMap的实例(尽管至少有一个 Creator 存在):没有字符串参数构造函数/工厂方法 从字符串值反序列化 ('{"Person":["name","age"],"Title":["start","end"]}') 在 [来源: (PushbackInputStream);行:12,列:20](通过参考链: com.xyz.MyParams["aMapping"])]
所以基本上java.util.Map 不能从 JSON 字符串中解析出来。我该怎么做?
【问题讨论】:
-
你是 aMapping 的 passig 字符串。你必须通过json。
标签: java json spring spring-boot