HttpMessageNotReadableException: Could not read JSON document: 错误原因分析及解决方法
错误概要:
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON document: Can not deserialize instance of java.lang.String out of START_OBJECT token
错误原因:传参错误!
- 错误写法:
const temp = formData.knowledgePointList;
let knowledgePointList = [];
temp.forEach(e => {
knowledgePointList.push({"pointId":e});
})
// 得到的对象示例:
knowledgePointList: [
{
pointId: {
id: "1356118204791029760",
questionId: "1356118204510011392",
pointId: "1356115423384469504"
}
}
]
- 正确写法:
const temp = formData.knowledgePointList;
let knowledgePointList = [];
temp.forEach(e => {
knowledgePointList.push(e);
})
// 得到的对象示例:
knowledgePointList: [
{
pointId: {
id: "1356118204791029760",
questionId: "1356118204510011392",
pointId: "1356115423384469504"
}
}
]
详细错误日志:
org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON document: Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: java.io.PushbackInputStream@7655ddb9; line: 1, column: 596] (through reference chain: com.ly.education.online.examination.api.dto.QuestionBankDto["knowledgePointList"]->java.util.ArrayList[0]->com.ly.education.online.examination.api.dto.KnowledgePointInfoDto["pointId"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: java.io.PushbackInputStream@7655ddb9; line: 1, column: 596] (through reference chain: com.ly.education.online.examination.api.dto.QuestionBankDto["knowledgePointList"]->java.util.ArrayList[0]->com.ly.education.online.examination.api.dto.KnowledgePointInfoDto["pointId"])
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:234)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:219)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:201)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:150)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:128)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:158)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:128)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:97)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)
at jav
加载更多
本文来自博客园,作者:Huathy,遵循 CC 4.0 BY-NC-SA 版权协议。转载请注明原文链接:https://www.cnblogs.com/huathy/p/17253839.html

浙公网安备 33010602011771号