在项目中遇到了一件令人头疼的事。使用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邂逅大写字段时的更多相关文章

  1. 选择两个字段时distinct位置的影响

    当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢? 先说结 ...

  2. 帝国cms添加修改会员字段时字段名不能带数字,否则注册页会出现空白

    这几天ytkah在整帝国cms会员模块,根据客户需求添加不同的字段,这个相对不难,可还是遇到了点问题.当时添加会员字段时,在字段名用数字“1”来代表第一次,如下图的字段名“1rwsdy” 但是添加以后 ...

  3. HIVE点滴:选择两个字段时distinct位置的影响

    当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢? 先说结 ...

  4. 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO

    刷新SQL Server所有视图.函数.存储过程 更多   sql   此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...

  5. MySQL 触发器-更新字段时,status列会加一

    需求:当更新列中的字段时,列中的status字段,就会+1 表结构 CREATE TABLE `test_1` ( `id` int(11) DEFAULT NULL, `name` varchar( ...

  6. Devexpress xaf BO中字段为RuleRequiredField必输字段时,文本标签默认添加*标记

    BO中字段为RuleRequiredField必输字段时,文本标签默认添加*标记.需要在模型编辑器中设置,如图. 官网地址:https://docs.devexpress.com/eXpressApp ...

  7. FastJson序列化对象复杂时出错问题解决

    FastJson序列化对象复杂时出错问题解决 针对复杂的对象,如Map<String, List<Map<String, XxxObject<A, B, C>>&g ...

  8. Dynamics AX 2012 R2 窗体系列 - 在窗体上修改字段时所触发的方法及其顺序

        在这个系列里,Reinhard将和大家一起探索在AX的窗体上执行操作时,都会触发窗体.窗体数据源和表上的哪些方法,并且是以怎样的顺序触发的.     这次,我们来看看在窗体上修改或录入数据的情 ...

  9. varchar2_to_blob,应用向数据库更新LOB字段时的超时问题

    将字符串转换为BLOB类型数据,写入服务器. 1,首先利用to_clob函数把varchar2字段转成 clob字段. 2  利用c2b上面函数将clob转成blob. 即: c2b(to_clob( ...

随机推荐

  1. 初始化的数值(int、double等)(一)

    首先考虑一个具有几个构造函数的MyClass类.如果我们决定在这个类的私有部分加入一个新的数据成员,称为int_data_: class MyClass { public: MyClass() : i ...

  2. 上传文件 nginx 413错误

    nginx : 413 Request Entity Too Large 上传文件过程发生413 Request Entity Too Large错误,翻译为请求实体过大,断定为nginx限制了请求体 ...

  3. GCC 优化选项 -O1 -O2 -O3 -OS 优先级,-FOMIT-FRAME-POINTER(O3的优化很小,只增加了几条优化而已)

    四种编译优化类型的解释: `-O ' `-O1 '                 Optimize.      Optimizing   compilation   takes   somewhat ...

  4. 接口、索引器、Foreach的本质(学习笔记)

    接口 什么是接口? 接口代表一种能力,和抽象类类似但比抽象类的抽象程度更高! 接口的定义: public interface IEat//定义一个接口 { void Eat(string food); ...

  5. Codeforces 987B. High School: Become Human

    解题思路: 1.题意:判断x^y和y^x谁大谁小. 2.由于x^y和y^x太大了,时间复杂度也不允许,所以做同等变换,比较e^(ylnx)和e^(xlny). 3.即为比较ylnx和xlny的大小. ...

  6. hdu 6082 - 完全背包,打表。

    2017-08-06 15:02:50 Accepted 1003 187 MS 2168 K G++ redips 对背包有了进一步的认识 ----------------------------- ...

  7. js悬浮吸顶

    <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>吸顶和锚点链接</t ...

  8. React中的AES加解密请求

    引言 在我们使用React开发Web前端的时候,如果是比较大的项目和正常的项目的话,我们必然会用到加解密,之前的文章中提到.NET的一些加解密,那么,这里我就模拟一个例子: 1.后台开发API接口,但 ...

  9. yii2.0 发送邮件带word小附件

        把 common/config/main-local.php 下的 mailer 注释掉:           'mailer'=>[                    'class ...

  10. python做的 QQ未读消息图像

    #!/usr/bin/pythonfrom PIL import Image ,ImageDraw, ImageFont#打开所在的文件im=Image.open('test.jpg')#获取图片对象 ...