当fastJson邂逅大写字段时_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 当fastJson邂逅大写字段时

当fastJson邂逅大写字段时

 2014/10/7 17:47:29  祁连山  程序员俱乐部  我要评论(0)
  • 摘要:在项目中遇到了一件令人头疼的事。使用fastJson反序列化时下面的Json时,得到对象属性总为null(如下图),可能细心的朋友一看就知道问题出在哪里,没错!问题就出在返回的字段首字母给大写了。fastJson解析的是利用反射通过setXxx()为对象赋值,这也就是为什么我们的javabean必须提价getXxx()和setXxx()方法的原因。知道了问题出在哪里,就得想办法解决。首先想到的是百度,可是一阵之后未果。数据库及服务端都不是自己做,改数据库及服务端都不现实
  • 标签:JSON JS

      在项目中遇到了一件令人头疼的事。使用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"
        }
    ]
}

解决方法很简单,但是确实让我琢磨了很久,只要是问题就值得记录下来,总会帮到别人的。

发表评论
用户名: 匿名