下面我就為大家分享一篇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; } }
也有說: ##強制轉換,用com.alibaba.fastjson.serializer.PascalNameFilter,直接把首字母轉成大寫。如:JSON.toJSONString(bean,new PascalNameFilter());
#不過上面那些我都沒有試過,因為我採用了自動轉換為小寫之後的name。想要保留大寫還需要你們自己去多找找看喔~~☺☺上面是我整理給大家的,希望今後會對大家有幫助。
相關文章:
在Vue 元件Toast中如何實作顯示框效果有關webpack中rules參數處理在AngularJS中如何實作簡單的計算#有關Bootstrap 模態方塊提交BUG的解決方案在webpack中詳細解讀入口函數run在Vue中如何實現進入/離開動畫在node.js中有關路由,中間件的詳細介紹說明以上是有關jackson如何解析json字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!