当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( ...
随机推荐
- zzulioj--1715--土豪银行(贪心)
1715: 土豪银行 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 456 Solved: 123 SubmitStatusWeb Board ...
- oracle 11g not in 与not exists 那个高效?
网络上很多谣言是后面跟小表用not in,后面跟大表用not exists,难道真的是这样子的嘛? 情况下面测试: 1.先用小表测试(1000条记录和一张8万条记录的表): SQL> creat ...
- [原创]微信小程序 实现 圆环 百分百效果
1.最终效果 2.技术点:a. css3 clip-path , b.根据角度和直边计算另一个直边的长度 3.实现思路: a.3个层(灰色圆形层, 红色圆形层,白色圆形层) ,其中灰色和红色层大小一 ...
- Nginx——在Windows环境下安装(一)
下载 Nginx是开源软件,用户可以访问 http://nginx.org/ 网站获取源码包或Windows二进制文件下载.其中1.13.x版本为开发版本,1.12.0版本为稳定版本.开发版本分支会较 ...
- oracle11g文件系统库迁移到ASM库上面
最近把oracle11g的文件系统库迁移到了asm库上面. 迁移过程大致如下: 最少停机方案: 实例joinpay02 | |数据库joinpay02 需要改动的文件: 数据文件 控制文件 redo文 ...
- Incomplete types-不完全类型
另外:前向声明中引入的类型为不完全类型(incomplete type),不完全类型只能以有限方式使用,只能用于定义指向该对象的指针和引用,只能用于声明使用该类型作为形参或返回类型的函数. Incom ...
- asp.net core 与EFcore 入门
什么是EFcore? Entity Framework (EF) Core 是轻量化.可扩展和跨平台版的常用 Entity Framework 数据访问技术,EF Core 可用作对象关系映射程序 ( ...
- (转)Java 虚拟机体系结构
来源:http://hxraid.iteye.com/blog/676235 众所周知,Java源代码被编译器编译成class文件.而并不是底层操作系统可以直接执行的二进制指令(比如Windows O ...
- 计算机组成原理--64位CPU装载32位操作系统,它的寻址能力还是4GB吗?
借由这个问题,今天我们就把 32 位 CPU.64 位 CPU.32 位操作系统.64 位操作系统之间的区别与联系彻底搞清楚.对于这个问题,博主也是一知半解了好长时间啊~ 基本概念 32位的CPU与6 ...
- JavaScript内存机制
内存模型 JS内存空间分为栈(stack).堆(heap).池(一般也会归类为栈中). 其中栈存放变量,堆存放复杂对象,池存放常量. 基础数据类型与栈内存 JS中的基础数据类型,这些值都有固定的大小, ...