这次给大家带来jackson解析json串时大小写自动转换的方法,jackson解析json串时大小写自动转换的注意事项有哪些,下面就是实战案例,一起来看一下。
问题
楼主碰到的问题是,在实体类和表中定义的某个字段为RMBPrice,首字母大写,sql查询出来的列名也是大写的RMBPrice,但是使用jquery的datatables初始化列时,却出错。
那一行的代码如下:{"name": "RMBPrice", "data": "RMBPrice", "className": "text-center", "render": formatRMBPrice},
打开页面却会显示这个。查看浏览器调用接口返回的值:
是小写的rmbprice
分析
接口返回的是一个@ResponseBody对象,在代码中打断点,一直到接口的返回值都是大写的,所以只可能是转换到json的时候出了问题。
百度 json 首字母大写,就出现了自动转换为小写的文章。
经过测试确实是,当前几个都是大写的字母,都会转换成小写,直到不是大写为止,若小写后面还有大写,则保持大写。
如:RRRddRRR会变成rrrddRRR.
解决办法
我直接修改js里面那行代码,改为:{"name": "rmbprice", "data": "rmbprice", "className": "text-center", "render": formatRMBPrice},
经过查询,如果要保留大写需要加上注解。
比如jackson使用:
在实体类定义字段时:@JsonProperty("ActionCode")
private String ActionCode = "";
fastjson使用:
@JSONField(name = “Name”) 而且该标记应该标记在get方法前:public class User {
private String name;
private int age;
@JSONField(name = "Name")
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
@JSONField(name = "Age")
public int getAge(){
return age;
}
public void setAge(int age){
this.age= age;
}
}
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读: