【发布时间】:2015-06-05 07:21:42
【问题描述】:
我在数据库中有一个 Json 字符串,但是在转换为 Java 对象时,它给出了以下错误:
原因:org.codehaus.jackson.JsonParseException:意外字符('�'(代码 65533 / 0xfffd)):预期有效值(数字、字符串、数组、对象、'true'、'false' 或'空')
Json 是:{"crt":"wrd","name":"7|6A TTTM"}
在 java 代码中我已经对其进行了配置并将其设为私有(不是静态最终)
objectMapper= new ObjectMapper();
objectMapper.configure(DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
注意:有时会在 Object 中转换 Json 字符串,但有时会出现上述错误。为什么会出现这个意想不到的结果?
【问题讨论】:
-
它可能会遇到一些无法正确解码的字节序列,从而导致替换字符。检查编码设置。
-
我没有给出任何编码设置。
-
如何设置编码?
-
@Nikhilsoni 您可以在创建输入流时显示代码吗?还有,你创建 json 时的编码是什么?
-
@Nikhilsoni 嗯,好的,但是你最初是如何创建
obj的?我只是想确保当您生成obj时,您将编码设置为类似 UTF-8 的编码,或者至少与您在运行此代码的平台中使用的默认编码相同。