当前位置:   article > 正文

解析JSON字符串报错:com.fasterxml.jackson.core.JsonParseException: Unexpected character (‘‘‘ (code 39)): was

com.fasterxml.jackson.core.jsonparseexception: unexpected character (' ' (co

1、报错信息

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]

2、问题描述

我的JSON字符串样式:生成的JSON字符串是单引号的,不是双引号

使用ObjectMapper的readValue反序列化的时候,报错。这是因为ObjectMapper默认不支持解析单引号的json字符串,错误代码如下

  1. @RequestMapping("/commonQuestion7")
  2. @ResponseBody
  3. public void commonQuestion7() throws Exception{
  4. ObjectMapper mapper = new ObjectMapper();
  5. String param="{'stu_id':'1001','stu_name':'晓春'}";
  6. //将字符串转换为对象
  7. Student stu=mapper.readValue(param,Student.class);
  8. }

3、解决办法

通过配置告诉ObjectMapper,单引号可解析

配置代码:mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);

正确代码如下

  1. @RequestMapping("/commonQuestion7")
  2. @ResponseBody
  3. public void commonQuestion7() throws Exception{
  4. ObjectMapper mapper = new ObjectMapper();
  5. mapper.configure(JsonParser.Feature.ALLOW_SINGLE_QUOTES, true);
  6. String param="{'stu_id':'1001','stu_name':'晓春'}";
  7. //将字符串转换为对象
  8. Student stu=mapper.readValue(param,Student.class);
  9. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/679586
推荐阅读
相关标签
  

闽ICP备14008679号