jackson解析json字符串,首字母大寫會自動轉(zhuǎn)為小寫的方法
問題
樓主碰到的問題是,在實體類和表中定義的某個字段為RMBPrice,首字母大寫,sql查詢出來的列名也是大寫的RMBPrice,但是使用jquery的datatables初始化列時,卻出錯。
那一行的代碼如下:
{"name": "RMBPrice", "data": "RMBPrice", "className": "text-center", "render": formatRMBPrice},
打開頁面卻會顯示這個。查看瀏覽器調(diào)用接口返回的值:
是小寫的rmbprice
分析
接口返回的是一個@ResponseBody對象,在代碼中打斷點,一直到接口的返回值都是大寫的,所以只可能是轉(zhuǎn)換到j(luò)son的時候出了問題。
百度 json 首字母大寫,就出現(xiàn)了自動轉(zhuǎn)換為小寫的文章。
經(jīng)過測試確實是,當(dāng)前幾個都是大寫的字母,都會轉(zhuǎn)換成小寫,直到不是大寫為止,若小寫后面還有大寫,則保持大寫。
如:RRRddRRR會變成rrrddRRR.
解決辦法
我直接修改js里面那行代碼,改為:
{"name": "rmbprice", "data": "rmbprice", "className": "text-center", "render": formatRMBPrice},
經(jīng)過查詢,如果要保留大寫需要加上注解。
比如jackson使用:
在實體類定義字段時:
@JsonProperty("ActionCode") private String ActionCode = "";
fastjson使用:
@JSONField(name = “Name”) 而且該標(biāo)記應(yīng)該標(biāo)記在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; } }
也有說:
強制轉(zhuǎn)換,用com.alibaba.fastjson.serializer.PascalNameFilter,直接把首字母轉(zhuǎn)成大寫。如:JSON.toJSONString(bean,new PascalNameFilter());
不過上面那些我都沒有試過,因為我采用了自動轉(zhuǎn)換為小寫之后的name。想要保留大寫還需要你們自己去多找找看喔~~☺☺
以上這篇jackson解析json字符串,首字母大寫會自動轉(zhuǎn)為小寫的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
jQuery實現(xiàn)類似標(biāo)簽風(fēng)格的導(dǎo)航菜單效果代碼
這篇文章主要介紹了jQuery實現(xiàn)類似標(biāo)簽風(fēng)格的導(dǎo)航菜單效果代碼,涉及jquery鼠標(biāo)事件操作頁面元素的遍歷與樣式動態(tài)修改技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-08-08由簡入繁實現(xiàn)Jquery樹狀結(jié)構(gòu)的方法(推薦)
下面小編就為大家?guī)硪黄珊喨敕睂崿F(xiàn)Jquery樹狀結(jié)構(gòu)的方法(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06淺談事件冒泡、事件委托、jQuery元素節(jié)點操作、滾輪事件與函數(shù)節(jié)流
下面小編就為大家?guī)硪黄獪\談事件冒泡、事件委托、jQuery元素節(jié)點操作、滾輪事件與函數(shù)節(jié)流。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07jQuery插件uploadify實現(xiàn)ajax效果的圖片上傳
本文主要介紹使用jQuery插件uploadify實現(xiàn)ajax效果的圖片上傳的功能,有需要的朋友可以參考一下。2016-06-06