赞
踩
com.fasterxml.jackson.core.JsonParseException: Unexpected character (''' (code 39)): was expecting double-quote to start field name
at [Source: (String)"{'stu_id':'1001','stu_name':'晓春'}"; line: 1, column: 3]
at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:2391) ~[jackson-core-2.13.5.jar:2.13.5]
我的JSON字符串样式:生成的JSON字符串是单引号的,不是双引号
使用ObjectMapper的readValue反序列化的时候,报错。这是因为ObjectMapper默认不支持解析单引号的json字符串,错误代码如下
- @RequestMapping("/commonQuestion7")
- @ResponseBody
- public void commonQuestion7() throws Exception{
- ObjectMapper mapper = new ObjectMapper();
- String param="{'stu_id':'1001','stu_name':'晓春'}";
- //将字符串转换为对象
- Student stu=mapper.readValue(param,Student.class);
- }
通过配置告诉ObjectMapper,单引号可解析
配置代码:mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
正确代码如下
- @RequestMapping("/commonQuestion7")
- @ResponseBody
- public void commonQuestion7() throws Exception{
- ObjectMapper mapper = new ObjectMapper();
- mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
- String param="{'stu_id':'1001','stu_name':'晓春'}";
- //将字符串转换为对象
- Student stu=mapper.readValue(param,Student.class);
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。