解决fasterxml中string字符串转对象json格式错误问题
2017-06-13 17:49
841 查看
软件152尹以操
springboot中jackson使用的包是fasterxml的。可以通过如下代码,将一个形如json格式string转为一个java对象:
但是,当我们要转的字符串是这种格式的就会报错,因为这种格式并不是规范的json格式:
错误信息是:
意思就是:fasterxml期望字段名带有双引号,也就是期望是这样的:
通过对比,发现上面的字符串和规范的json字符串主要有两个不同点,一个是字段名未用引号,第二个是使用了单引号。这都是不规范的Json格式写法。
当然,最好的解决方式是将string字符串转成规范的json格式,但是由于某些原因,不得不使用这种格式怎么办呢?
解决:
除了ALLOW_UNQUOTED_FIELD_NAMES,ALLOW_SINGLE_QUOTES还有其它的设置,有用到试试。
springboot中jackson使用的包是fasterxml的。可以通过如下代码,将一个形如json格式string转为一个java对象:
com.fasterxml.jackson.databind.ObjectMappermapper=newcom.fasterxml.jackson.databind.ObjectMapper(); mapper.readValue(字符串,javabean.class);
但是,当我们要转的字符串是这种格式的就会报错,因为这种格式并不是规范的json格式:
{success:2,message:'认证已通过!设备未添加,请与和航联系。设备编号:1101'}
错误信息是:
com.fasterxml.jackson.core.JsonParseException:Unexpectedcharacter('s'(code115)):wasexpectingdouble-quotetostartfieldname
意思就是:fasterxml期望字段名带有双引号,也就是期望是这样的:
{"success":2,"message":"认证已通过!设备未添加,请与和航联系。设备编号:1101"}
通过对比,发现上面的字符串和规范的json字符串主要有两个不同点,一个是字段名未用引号,第二个是使用了单引号。这都是不规范的Json格式写法。
当然,最好的解决方式是将string字符串转成规范的json格式,但是由于某些原因,不得不使用这种格式怎么办呢?
解决:
com.fasterxml.jackson.databind.ObjectMappermapper=newcom.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还有其它的设置,有用到试试。
相关文章推荐
- var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)
- json格式的字符串转为json对象遇到特殊字符问题解决
- 使用Volley StringRequest返回String 编码格式错误乱码问题解决
- struts2操作json成字符串格式错误被转义及其前台访问json对象的方法
- 【C#】解决进行反序列化时出错:。InnerException 消息是“反序列化对象 属于类型 System.String 时出现错误。读取 XML 数据时,超出最大字符串内容长度配额 (8192)。
- ajax打印对象时,转换由java对象转为Json格式的String时遇到的Hibernate问题
- java中模型转json对象时,时间属性格式不正确问题的解决
- js中json字符串转换为对象以及转换是报 缺少";"错误的解决方法
- 把对象转换成JSON格式的Object类型和String类型的字符串
- 解决@ResponseBody返回字符串中文json对象??问题
- jsonobject将json格式字符串转化为对象时,日期格式错误解析
- 在远程调用别人接口的时候,传输参数一般都是String类型的字符串,改字符串可以是json格式的,也可以是xml格式的,那么问题来了
- 通过ajax读取json格式数据字符串出现回车时出错问题解决
- js前台传递json字符串数组到后台有后台转换成list集合或其他格式的问题解决
- JavaScript 中字符串转为Json对象出错的解决
- json解决hibernate中级联对象延迟加载问题net.sf.json.JSONException: org....
- Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
- 错误类型 Server 对象, ASP 0177 (0x800401F3)无效的类别字符串—解决方法
- Jquery ajax不能解析json对象,报Invalid JSON错误的原因和解决方法
- json格式字符串与json对象相互转换的函数