当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邂逅大写字段时的更多相关文章
- 选择两个字段时distinct位置的影响
当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢? 先说结 ...
- 帝国cms添加修改会员字段时字段名不能带数字,否则注册页会出现空白
这几天ytkah在整帝国cms会员模块,根据客户需求添加不同的字段,这个相对不难,可还是遇到了点问题.当时添加会员字段时,在字段名用数字“1”来代表第一次,如下图的字段名“1rwsdy” 但是添加以后 ...
- HIVE点滴:选择两个字段时distinct位置的影响
当选择两个字段时,例如:"select XX1, XX2 from tb; ",那么将distinct放在前一个字段XX1之前和放在后一个字段XX2之前,结果有什么不同呢? 先说结 ...
- 刷新SQL Server所有视图、函数、存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图、函数、存储过程有效性。 [SQL]代码 --视图、存储过程、函数名称 DECLARE @NAME NVARCHAR(255); --局部游标 DECLARE @CUR CURSOR --自动修改未上状态为旷课 SET @CUR=CURSOR SCROLL DYNAMIC FO
刷新SQL Server所有视图.函数.存储过程 更多 sql 此脚本用于在删除或添加字段时刷新相关视图,并检查视图.函数.存储过程有效性. [SQL]代码 --视图.存储过程.函数名称 DE ...
- MySQL 触发器-更新字段时,status列会加一
需求:当更新列中的字段时,列中的status字段,就会+1 表结构 CREATE TABLE `test_1` ( `id` int(11) DEFAULT NULL, `name` varchar( ...
- Devexpress xaf BO中字段为RuleRequiredField必输字段时,文本标签默认添加*标记
BO中字段为RuleRequiredField必输字段时,文本标签默认添加*标记.需要在模型编辑器中设置,如图. 官网地址:https://docs.devexpress.com/eXpressApp ...
- FastJson序列化对象复杂时出错问题解决
FastJson序列化对象复杂时出错问题解决 针对复杂的对象,如Map<String, List<Map<String, XxxObject<A, B, C>>&g ...
- Dynamics AX 2012 R2 窗体系列 - 在窗体上修改字段时所触发的方法及其顺序
在这个系列里,Reinhard将和大家一起探索在AX的窗体上执行操作时,都会触发窗体.窗体数据源和表上的哪些方法,并且是以怎样的顺序触发的. 这次,我们来看看在窗体上修改或录入数据的情 ...
- varchar2_to_blob,应用向数据库更新LOB字段时的超时问题
将字符串转换为BLOB类型数据,写入服务器. 1,首先利用to_clob函数把varchar2字段转成 clob字段. 2 利用c2b上面函数将clob转成blob. 即: c2b(to_clob( ...
随机推荐
- Matlab pchiptx
function v = pchiptx(x,y,u) %PCHIPTX Textbook piecewise cubic Hermite interpolation. % v = pchiptx(x ...
- 火狐访问IIS出现404,而Chrome可以正常访问
需要在web.config中的handlers中添加如下节点,保存之后,需要重启电脑. <remove name="ExtensionlessUrlHandler-Integrated ...
- keepalived+双主架构部署
在高可用集群环境中,keepalived使用的是VIP,利用keepalived自带的服务监控功能和自定义脚本来实现MYSQL故障时自带切换. Keepalived基于VRRP协议,虚拟冗余路由协议, ...
- What's new in Safari 11.0
导语: Safari 11.0 的亮点 网络会议.使用WebRTC标准实现对等会议. 开发调试工具增强.使用用于测量代码和网络性能的新工具来测试代码. WebAssembly.当使用新的WebAsse ...
- 优动漫PAINT基础系列之拾色器教学
在优动漫PAINT中有类似Photoshop的拾色器功能么?在优动漫PAINT中,可以直接输入颜色数值选择颜色么?当然是可以的啦!怎么呼出拾色器界面~ 看这边... 前段时间小编有收到一些小伙伴的疑问 ...
- layui层级
zIndex:layer.zIndex, success : function(layero){ var zIndex = layer.index; $(layero).css(‘z-index’,z ...
- java的selenium环境搭建
1.下载jdk1.8 环境变量我的博客有我就不说 selenium下载地址:http://npm.taobao.org/mirrors/selenium 2.下 ...
- input标签type为number时,输入小数,在Firefox浏览器上输入框标红的问题
问题一:firefox 下 默认情况 <input type="number"> 只允许输入整数,输入小数时会报错,输入框被标红 这时候可以添加参数 step=&q ...
- 2015 Multi-University Training Contest 3 hdu 5316 Magician
Magician Time Limit: 18000/9000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total S ...
- Thunderbird导出邮件为PDF文件
一般如果在windows下,可以通过打印的方式,生成一个PDF文件,可以完成此任务. 而今天在linux下采取此方式,生成的PDF文件居然是空白.原因未知. 而Thunderbird并未提供该功能,这 ...