當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"
        }
    ]
}

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM