json解析报错:HttpMessageNotReadableException: JSON parse error: Unexpected character (‘/‘ (code 47))

野性酷女 2024-03-30 12:22 178阅读 0赞

报错信息

  1. at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 109]
  2. at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:391)
  3. at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:343)
  4. at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)
  5. at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:160)
  6. at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:133)
  7. at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:122)
  8. at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:179)
  9. at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:146)
  10. at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)
  11. at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)
  12. at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
  13. at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
  14. at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1070)
  15. at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
  16. at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
  17. at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
  18. at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
  19. at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
  20. at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
  21. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
  22. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  23. at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
  24. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  25. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  26. at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
  27. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
  28. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  29. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  30. at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
  31. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
  32. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  33. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  34. at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:96)
  35. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
  36. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  37. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  38. at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
  39. at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)
  40. at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
  41. at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
  42. at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
  43. at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
  44. at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
  45. at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
  46. at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
  47. at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
  48. at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
  49. at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
  50. at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
  51. at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
  52. at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1789)
  53. at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
  54. at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
  55. at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  56. at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
  57. at java.base/java.lang.Thread.run(Thread.java:834)
  58. Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('/' (code 47)): maybe a (non-standard) comment? (not recognized as one since Feature 'ALLOW_COMMENTS' not enabled for parser)
  59. at [Source: (org.springframework.util.StreamUtils$NonClosingInputStream); line: 1, column: 109]
  60. at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391)
  61. at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:735)
  62. at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:659)
  63. at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipComment(UTF8StreamJsonParser.java:3210)
  64. at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd2(UTF8StreamJsonParser.java:3090)
  65. at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._skipWSOrEnd(UTF8StreamJsonParser.java:3066)
  66. at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextFieldName(UTF8StreamJsonParser.java:1034)
  67. at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:398)
  68. at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:184)
  69. at com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323)
  70. at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4674)
  71. at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3682)
  72. at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:380)
  73. ... 55 common frames omitted

相关文章

我的问题和这篇文章很相似,用了同样的方法解决

知乎一篇有关原理的文章

具体问题解说

富文本只是上传文字,能正常修改和保存。
不加图片时候截图
但是加上图片就报上面的错。加上图片后的,注意看绑定的字符串,问题就出在 // 上。后端在解析字符串的时候报错了。
加图片后的截图

我的解决方案:

在配置文件中截图对应位置,配置上防止xss攻击的设置。把enabled设置为true,再在后面写上报错的请求路径就行了。
解决问题具体截图
当然这并不是最优的解决方法,如果有更优的解决方法欢迎留言赐教。
也有的文章说把字符串转一下,请求数据的时候再转回来,我觉得有些麻烦,就没有用这种方法。

发表评论

表情:
评论列表 (有 0 条评论,178人围观)

还没有评论,来说两句吧...

相关阅读