软件152 尹以操

  springboot中jackson使用的包是fasterxml的。可以通过如下代码,将一个形如json格式string转为一个java对象:

com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
mapper.readValue(字符串, javabean.class);

  但是,当我们要转的字符串是这种格式的就会报错,因为这种格式并不是规范的json格式:

{success:2,message:'认证已通过!设备未添加,请与和航联系。设备编号:1101'}

  错误信息是:

com.fasterxml.jackson.core.JsonParseException: Unexpected character ('s' (code 115)): was expecting double-quote to start field name

  意思就是:fasterxml期望字段名带有双引号,也就是期望是这样的:

{"success":2,"message":"认证已通过!设备未添加,请与和航联系。设备编号:1101"}

  通过对比,发现上面的字符串和规范的json字符串主要有两个不同点,一个是字段名未用引号,第二个是使用了单引号。这都是不规范的Json格式写法。

  当然,最好的解决方式是将string字符串转成规范的json格式,但是由于某些原因,不得不使用这种格式怎么办呢?

解决:

com.fasterxml.jackson.databind.ObjectMapper mapper = new com.fasterxml.jackson.databind.ObjectMapper();
//允许使用未带引号的字段名
mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
//允许使用单引号
mapper.configure(Feature.ALLOW_SINGLE_QUOTES, true); mapper.readValue(字符串, javabean.class);

除了ALLOW_UNQUOTED_FIELD_NAMES,ALLOW_SINGLE_QUOTES还有其它的设置,有用到试试。

 

最新文章

  1. **SQL某一表中重复某一字段重复记录查询与处理
  2. sqlserver row_number 类似 mysql中 limit 用法
  3. CSS transition 过渡 详解
  4. TCP/IP 中文译名为传输控制协议/因特网互联协议,又叫网络通讯协议
  5. 怎样用LINQ或EF生成NOT IN和IN语句
  6. win10 uwp 绑定静态属性
  7. Progressive Web Applications
  8. app后端设计(6)-- LBS
  9. 【1】MySQL大数据量分页查询方法及其优化
  10. jQuery插件整理
  11. idea集成maven
  12. Python pickle模块
  13. C语言程序内存的分区
  14. Python3解《剑指》问题:“遇到奇数移至最前,遇到偶数移至最后”
  15. shell中test命令方法详解
  16. Postman无法正常启动解决办法
  17. 浅析人脸检测之Haar分类器方法:Haar特征、积分图、 AdaBoost 、级联
  18. docker 17.09.0-ce 启动更换网络地址
  19. Java并发性和多线程介绍目录
  20. android TCP 和 UDP总结(转)

热门文章

  1. 1503 猪和回文(DP)
  2. 从ELK到EFK
  3. Django分发控制器urls--白话聊Django系列
  4. python的基础数据类型笔记
  5. Docker + ElasticSearch + Node.js
  6. 2.3 使用ARDUINO控制MC20进行GPRS的TCP通讯
  7. 1.3 使用电脑测试MC20的电话语音功能
  8. width
  9. iOS 反射 学习 和 运用
  10. 微服务架构~BFF和网关是如何演化出来的