fastjson升级的事情,我相信做开发的可能都做过,升级后带来一些个问题,在发请求的脚本,运行后,报错如下:
2019-10-09 15:24:12.547 - - [ERROR] pool-28-thread-1 KmsTokenImpl get token error :
com.fasterxml.jackson.core.JsonParseException: Unexpected character ('C' (code 67)): Expected space separating root-level values
at [Source: (String)"3C2P0s0uZr56V0mm"; line: 1, column: 3]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1804) ~[jackson-core-2.9.7.jar!/:2.9.7]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:669) ~[jackson-core-2.9.7.jar!/:2.9.7]
at com.fasterxml.jackson.core.base.ParserMinimalBase._reportUnexpectedChar(ParserMinimalBase.java:567) ~[jackson-core-2.9.7.jar!/:2.9.7]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_45]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_45]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]
原因:由于代码中封装的JSON不是标准的JSON。
{'ctx_as':''}
将单引号改为双引号,即json的标准形式,就可以了:
{"ctx_as":''}
【Java】com.fasterxml.jackson.core.JsonParseException: Unexpected character ('C' (code 67)): Expected
fastjson升级的事情,我相信做开发的可能都做过,升级后带来一些个问题,在发请求的脚本,运行后,报错如下:2019-10-09 15:24:12.547 - - [ERROR] pool-28-thread-1 KmsTokenImpl get token error :com.fasterxml.jackson.core.JsonParseException: Unexpected...
完整异常信息
com
.
fasterxml
.
jackson
.
core
.
JsonP
arse
Exception
: Unrecognized token ‘provider’: was expecting (JSON String, Number, Array, Object or token ‘null’, ‘true’ or ‘false’)
at [Source: (PushbackInputStream); line: 1, column: 10]
2021-05-20 10:05:06.245 ERR
nested
exception
is
com
.
fasterxml
.
jackson
.
core
.
JsonP
arse
Exception
: Unrecognized token ‘xxx‘错误的详细解决方法
com
.
fasterxml
.
jackson
.
core
.
JsonP
arse
Exception
:
Unexpected
character
(’-’ (
code
45)):
Expected
space separating root-level values
at [Source: (byte[])“2021-11-17 18:48:51”; line: 1, column: 6]
我遇到原因是 一位同事用的下面的属性写的
@Autowired
private RedisTemplate<
Caused by:
com
.
fasterxml
.
jackson
.
core
.
JsonP
arse
Exception
:
Unexpected
character
was expecting double-q
解决
fasterxml
中string字符串转对象json格式错误问题。
springboot中
jackson
使用的包是
fasterxml
的。可以通过如下代码,将一个形如json格式string转为一个
java
对象:
com
.
fasterxml
.
jackson
.databind.ObjectMapper mapper = new
com
.
fasterxml
.
jackson
.databind.ObjectMapper();
mapper.readValue(字符串,
java
bean.class);
org.springframework.http.converter.HttpMessageNotReadable
Exception
: Could not read document:
Unexpected
character
('j' (
code
106)):
Expected
space separating root-level values
at [Source: ...
com
.
fasterxml
.
jackson
.
core
.
JsonP
arse
Exception
: 意外的字符 (i (
code
105)): 期望双引号来开始字段名。
这个错误消息表明在解析 JSON 文本时遇到了意外的字符 "i"。这通常是因为 JSON 文本中的字段名应该用双引号引起来,但在解析时遇到了其他字符。
例如,以下 JSON 文本会导致这个错误:
i_am_a_field: "field value"
正确的 JSON 应该是这样的:
"i_am_a_field": "field value"
可能是 JSON 文本中存在语法错误,或者是在生成 JSON 文本时没有正确地使用双引号引起字段名。