當fastJson邂逅大寫欄位時,fastjson邂逅大寫

來源:互聯網
上載者:User

當fastJson邂逅大寫欄位時,fastjson邂逅大寫

      在項目中遇到了一件令人頭疼的事。使用fastJson還原序列化時下面的Json時,得到對象屬性總為null(如),可能細心的朋友一看就知道問題出在哪裡,沒錯!問題就出在返回的欄位首字母給大寫了。fastJson解析的是利用反射通過setXxx()為對象賦值,這也就是為什麼我們的javabean必須提價getXxx()和setXxx()方法的原因。
      知道了問題出在哪裡,就得想辦法解決。首先想到的是百度,可是一陣之後未果。資料庫及服務端都不是自己做,改資料庫及服務端都不現實,只有在android上考慮,服務端做也就是把返回的Json欄位的首字母弄小寫,或改資料表裡的欄位,好吧,說到這裡,也就不賣關子了,解決方案很簡單,直接給Json字串toLowerCase()一把再轉換成JsonObject,這時javabean就可以統統用小寫處理。
關鍵代碼:JSONObject jObject = new JSONObject(resource.toLowerCase(Locale.getDefault()));

{    "res": "1",    "index_banner": [        {            "Ad_Name": "手機滾動大圖一",            "Ad_Link": "/huodong/fabuhui.html",            "Ad_Code": "/UpLoads/image/20140910/20140910172048_31579.jpg"        },        {            "Ad_Name": "手機滾動切換五",            "Ad_Link": "http://m.toptuu.com/Huodong/danye.html",            "Ad_Code": "/UpLoads/image/20140906/20140906084953_94943.jpg"        },        {            "Ad_Name": "手機滾動切換四",            "Ad_Link": "/Huodong/dingzhi.html",            "Ad_Code": "/UpLoads/image/20140906/20140906085053_90516.jpg"        },        {            "Ad_Name": "手機滾動切換三",            "Ad_Link": "/Huodong/jiu.html",            "Ad_Code": "/UpLoads/image/20140906/20140906085138_32961.jpg"        },        {            "Ad_Name": "手機滾動大圖二",            "Ad_Link": "/huodong/jy.html",            "Ad_Code": "/UpLoads/image/20140910/20140910152954_72484.jpg"        },        {            "Ad_Name": "手機切換0",            "Ad_Link": "/Huodong/xifeng.html",            "Ad_Code": "/UpLoads/image/20140830/20140830115112_40561.jpg"        }    ]}

解決方案很簡單,但是確實讓我琢磨了很久,只要是問題就值得記錄下來,總會幫到別人的。


fastjson 過濾多餘的欄位

SimplePropertyPreFilter filter = new SimplePropertyPreFilter(實體類.class, "欄位名","欄位名");
JSON.toJSONString(list, filter);
 
fastjson解析JSON問題

syntax error pos 2第二個關鍵詞位置格式錯誤
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.