一文详解Unexpected character (‘“‘ (code 34)): was expecting comma to separate Object entries的问题

2023-05-16

文章目录

  • 1. 复现问题
  • 2. 分析问题
  • 3. 解决问题
  • 4. 重要补充
    • 4.1 knife4j的详细教程

1. 复现问题

今天在使用knife4j请求后端接口时,首次请求能够正常访问。

只是修改个参数值,就报出如下错误信息:

在这里插入图片描述

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Unexpected character ('"' (code 34)): was expecting comma to separate Object entries; nested exception is com.fasterxml.jackson.core.JsonParseException: Unexpected character ('"' (code 34)): was expecting comma to separate Object entries
 at [Source: (PushbackInputStream); line: 6, column: 4]
	at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:389)
	at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.read(AbstractJackson2HttpMessageConverter.java:342)
	at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.readWithMessageConverters(AbstractMessageConverterMethodArgumentResolver.java:185)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:158)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:131)
	at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:121)
	at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:170)
	at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:137)
	at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
	......
	......
Caused by: com.fasterxml.jackson.core.JsonParseException: Unexpected character ('"' (code 34)): was expecting comma to separate Object entries
 at [Source: (PushbackInputStream); line: 6, column: 4]
	at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1840)
	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:712)
	at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:637)
	at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextFieldName(UTF8StreamJsonParser.java:1010)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:376)
	at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:159)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4202)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3258)
	at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:378)
	... 67 more

2. 分析问题

Unexpected character ('"' (code 34)): was expecting comma to separate Object entries错误,来自ChatGPT的解释如下图:

在这里插入图片描述

也就是说,我的请求参数(json格式)有误,导致jackson无法解析这样的参数。

于是到接口请求的地方,查看我的请求参数,如下图所示:

在这里插入图片描述

若你不仔细看,你无法看到问题所在。

我是反复尝试了数字,才看到在"id": 1的地方,出现了问题,因为1后面没有加上逗号(英文的逗号)。

3. 解决问题

由于1后面没有加上逗号,只要在其后面加上逗号即可,如下图所示:

在这里插入图片描述

重新请求后端接口,即能正常访问,如下图所示:

在这里插入图片描述

在工作过程中,还是要仔细。不能因为一个点,浪费很长排查问题的时间。

4. 重要补充

4.1 knife4j的详细教程

插句题外话,关于knife4j的详细使用教程,可以参考博文:全网最全的Knife4j swaggerj介绍

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文详解Unexpected character (‘“‘ (code 34)): was expecting comma to separate Object entries的问题 的相关文章

  • javascript 文件附加非法字符

    我认为我的 apache 网络服务器有问题 我无法参考jquery js 我收到以下错误 带镀铬 Uncaught SyntaxError Unexpected token ILLEGAL 使用火狐浏览器 Error illegal cha
  • Ruby:如何判断一个字符是字母还是数字?

    本周早些时候我刚刚开始摆弄 Ruby 但遇到了一些我不太知道如何编码的问题 我正在将用 Java 编写的扫描器转换为 Ruby 以进行类作业 我已经开始讨论这一部分 if Character isLetter lookAhead retur
  • 根据与 R 中的字符串共享的值将颜色分配给数据框

    我在 R 中工作 我有许多不同的数据框 其中包含样本名称 我尝试根据样本名称为每个数据框中的每一行分配颜色 有许多行具有相同的样本名称 但我的输出数据很混乱 因此无法按样本名称排序 这是我所拥有的一个小例子 names lt c TC3 1
  • 从 PHP 字符串中删除前 3 个字符和后 3 个字符

    我需要删除字符串的前 3 个字母和后 3 个字母 我知道我可以使用 substr 从某个字符开始 但如果我需要删除第一个和最后一个字符 我不确定是否真的可以使用它 有什么建议么 传递一个负值作为length参数 第三个参数 substr h
  • 从字符串中删除最后一个字符。斯威夫特语言

    如何使用 Swift 从 String 变量中删除最后一个字符 在文档中找不到它 这是完整的示例 var expression 45 22 expression expression substringToIndex countElemen
  • 哪些字符对于 JavaScript 变量名有效?

    哪些字符可用于命名 JavaScript 变量 我想为工作中的非 JavaScript 用户创建一个小型 扩展库 他们在谈到语言时似乎都有些拘谨 我喜欢 jQuery 和 Prototype 都使用 美元符号 由于我使用 jQuery 我正
  • Java中的char和Character有什么区别?

    我需要知道Java中的char和Character有什么区别 因为当我编写java程序时 char可以工作 而Character却不起作用 char 是表示单个 16 位 Unicode 字符的原始类型 而 Character 是一个包装类
  • 如何在数组中添加字符数量?

    所以我有一个字符串数组 需要获取每个字符串中的字符数并将它们加在一起以获得总数 1 我该怎么做呢 这是数组 public class Final21 public static String getLongString String arr
  • 未知长度的字符返回函数

    如何使用结果最初长度未知的字符函数 The trim 据我了解 函数表明可以不指定返回字符串的长度 例如 write trim str 将仅返回不带尾随空格的字符串的一部分 该函数在调用之前不知道返回字符串的长度 Or trim 功能有限制
  • 字符文字中尾随撇号有什么好处

    我正在编写自己的编程语言 并且现在正在重新考虑语法的许多方面 在许多大多数语言中让我困扰的是尾随撇号在字符文字中 Example带有尾部斜杠 n 没有尾部斜杠 n 为什么新语言 如 rust f e 继续使用尾随撇号 看到这些语言解决了我们
  • 使用字符包装器编写代码,用保留原始大小写的新字母替换字符串中的字母

    尝试找出如何使用字符换行来根据用户输入改变字符串 如果字符串是 鲍勃喜欢建造建筑 并且用户选择将所有字母 B b 替换为 T t 我需要如何编码才能得到 汤姆喜欢建造建筑 我认为 String 类有一个内置的替换函数 String text
  • 在比较四个字符的字符串时,有什么简单的方法可以检查两个或多个字符是否相等?

    我必须比较两个字符串 例如INTU and IXTE并检查两个或多个字符是否相同 对于前两个字符串 我想返回true 因为 I 和 T 相同 字符串中字母的顺序最终无关紧要 因为每个字符不能出现在字符串中的不同位置 似乎应该有一个简单的方法
  • PHP中如何分割汉字?

    我需要一些关于如何在 PHP 中拆分与英文单词和数字混合的汉字的帮助 例如 如果我读到 FrontPage 2000中文版應用大全 我希望得到 FrontPage 2000 中 文 版 應 用 大 全 or FrontPage 2 0 0
  • 在C#中,将字符串解析为单个字符

    在 C 中 如何将字符串解析为单个字符 Given 词 太棒了 期望的结果 字母 0 W 字母 1 o 字母 2 n 字母 3 d 字母 4 e 字母 5 r 字母 6 f 字母 7 u 字母 8 l Char letters word T
  • r-将列表列转换为字符向量,其中列表是字符

    我正在尝试将列表转换为单个字符值 或者基本上从这里开始 test lt data frame a c 1 1 1 2 2 2 b c a b c d e f gt group by a gt summarise b list b to th
  • 将日期转换为特定格式的字符在R中

    我需要映射 3 4 个具有不同日期格式的不同数据帧 我们如何将日期转换为以下格式 YYYY MM DD 转换为以下格式的字符 MMM YY 从字符串创建日期对象 如果您的列已采用日期格式 请跳过此操作 original date lt as
  • 如何在 Swift 中生成随机 unicode 字符?

    我当前尝试创建随机 unicode 字符生成失败 并出现错误 例如我的其他问题中提到的错误here https stackoverflow com questions 32158381 fatal error high and low su
  • 删除非英文字符 PHP

    我如何解析字符串以删除 php 中的所有非英文字符 现在我想删除类似的东西 谢谢 str preg replace 00 255 u str
  • 比较字符变量

    我想在 R Studio 中比较两个不同的字符变量 第一列 BZ Pred 显示参与者预测的 5 个最常用的应用程序 第二列 BZ Act 显示实际使用最多的 5 个应用程序 现在我想创建第三列 如果第一个应用程序被正确猜测 则包含 是 如
  • 如何删除Excel 2010单元格中的某些字符

    在 A 列中 我有很多类似这样的名称 约翰 史密斯 我仍然希望它们在 A 中 但 被删除了 If John Smith 位于单元格 A1 中 然后使用以下公式执行您想要的操作 SUBSTITUTE SUBSTITUTE A1 内部 SUBS

随机推荐