配置 Jackson 反序列化单引号(无效)JSON
我是使用杰克逊库的新手。
我正在尝试执行此操作[见下文],但它抛出错误。
String x="{'candidateId':'k','candEducationId':1,'activitiesSocieties':'Activities for cand1'}";
ObjectMapper mapper = new ObjectMapper();
try {
JsonNode df=mapper.readValue(x,JsonNode.class);
int i=0;
} catch .....
例外:
org.codehaus.jackson.JsonParseException:意外字符('''(代码 39)):期望以双引号开头字段名称 在[来源:java.io.StringReader@1afd1810;行:1,列:3] 在 org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1291)
如果我用双引号(“)替换单引号('),同样的事情会起作用。
I am a newbie to using jackson library.
I am trying to do this [see below], and it is throwing error.
String x="{'candidateId':'k','candEducationId':1,'activitiesSocieties':'Activities for cand1'}";
ObjectMapper mapper = new ObjectMapper();
try {
JsonNode df=mapper.readValue(x,JsonNode.class);
int i=0;
} catch .....
Exception:
org.codehaus.jackson.JsonParseException: Unexpected character (''' (code 39)): was expecting double-quote to start field name at [Source: java.io.StringReader@1afd1810; line: 1, column: 3] at org.codehaus.jackson.JsonParser._constructError(JsonParser.java:1291)
While the same thing works if I replace the single quote(') with double quote(").
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它不是有效的 JSON,但您可以告诉 Jackson 允许它。方法如下。
It's not valid JSON, but you can tell Jackson to allow it. Here's how.
JSON 中的字符串只能使用双引号 (
"
) 指定,不能 单引号 ('
),这就是错误的原因;使用双引号。这是指定有效 JSON 字符串的管道图(注意它们只能用双引号封装!)
<图片src="https://i.sstatic.net/Ca4GZ.gif" alt="有效 JSON 字符串管道图">
(来源:json.org)
(参见json.org 了解 JSON 的完整规范。)
Strings in JSON may only be specified using double quotes (
"
), not single quotes ('
), this is the reason for your error; use double quotes.Here's the pipe diagram that specifies valid JSON strings (note they may only be encapsulated with double quotes!)
(source: json.org)
(See json.org for a complete specification of JSON.)
这就是我的情况下的工作方式:
This is the way it works in my case: