JSONArray.toCollection 封装 bean 失败
1. 问题描述:
通过http请求服务端, 返回的bean的集合的字符串形式, 其中bean中的Date类型的属性值,形式为Long类型的表示形式(1466083519000);
String responseStr = client.list(userid, from, to, s, max, -1);
返回的 responseStr如下:
[{"id":44,"content":"上海精神","createtime":1466083520000,"provider":"Apollo","receiver":"apollo","readingflag":1},{"id":45,"content":"上海精神","createtime":1466083520000,"provider":"Apollo","receiver":"apollo","readingflag":1},{"id":46,"content":"上海精神","createtime":1466083520000,"provider":"Apollo","receiver":"apollo","readingflag":1},{"id":47,"content":"上海精神","createtime":1466083520000,"provider":"Apollo","receiver":"apollo","readingflag":0},{"id":48,"content":"上海精神","createtime":1466083520000,"provider":"Apollo","receiver":"apollo","readingflag":0},{"id":49,"content":"上海精神","createtime":1466083520000,"provider":"Apollo","receiver":"apollo","readingflag":0},{"id":8,"content":"上海精神","createtime":1466083519000,"provider":"Apollo","receiver":"apollo","readingflag":1},{"id":9,"content":"上海精神","createtime":1466083519000,"provider":"Apollo","receiver":"apollo","readingflag":1},{"id":10,"content":"上海精神","createtime":1466083519000,"provider":"Apollo","receiver":"apollo","readingflag":1},{"id":13,"content":"上海精神","createtime":1466083519000,"provider":"Apollo","receiver":"apollo","readingflag":1}]
此时通过JSONArray来转换,
JSONArray jArray = JSONArray.fromObject(responseStr);
接着通过Collection collection = JSONArray.toCollection(jArray, Message.class);来转出集合,
问题出现了:
集合 bean(Message)中的Date 类型 createtime值为系统当前时间, 而非正确的时间数据(1466083519000所对应的 yyyy-MM-dd类型数据)。
2. 处理办法:
对返回的responseStr数据运用正则表达式,替换long形式数据为日期格式形式。
String regEx = "[0-9]{13}";
Pattern pattern = Pattern.compile(regEx);
Matcher matcher = pattern.matcher(responseStr);
while(matcher.find()){
String group = matcher.group();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String format = sdf.format(new Date(Long.valueOf(group)));
responseStr = responseStr.replace(group, format);
}
JSONArray jArray = JSONArray.fromObject(responseStr);
List<Map> messageListPage = (List<Map>)JSONArray.toCollection(jArray, Map.class);
再将List<Map> 返回前端 让js处理,前端返回类型 dataType : "json”, 返回List<Message> 和 返回 List<Map> 处理方式一样
JSONArray.toCollection 封装 bean 失败的更多相关文章
- 通过java反射,封装bean
上周有一个封装javabean的流程,成员变量有好多,一路写if(!=null){setXXX} 真的好麻烦,有时候一不小心还会漏掉,很是麻烦,就想到用反射的方法自动进行拼装bean. bean pa ...
- 当spring 对象@Autowired 注入失败或者创建对象Bean失败、No qualifying bean/Error creating bean 的失败情形分析和解决方案
错误信息 今天开发的过程中突然出现如下错误: Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: N ...
- SpringBoot集成spring-data-jpa注入Bean失败
当项目结构正常(spring管理的Bean在SrpingBoot启动类平级或下级,支持spring扫描时),实现类上加 @Service注解,在实现类中注入dao层的Bean时,项目无法启动,无法找到 ...
- Java JSONArray的封装与解析
package com.kigang.test; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import java.ut ...
- SprigCloud入门踩坑之创建bean失败
昨天也是报同样的错误,恰好要去吃饭,着急就没找到问题,把项目删了,后续看了路飞大佬的通过pom导入依赖的方式,但是资源导入太慢随放弃. 昨晚熄灯前二十分钟又从头敲了一遍,敲好就断电了,没来得及启动,今 ...
- springboot注册bean失败
启动的主类应该放在和其他包一样的目录,不能放在一个目录里面
- 【反射】利用java反射原理将xml文件中的字段封装成对应的Bean
本例使用的xml解析方式为jdom ... <ROOT> <Consignment> ... </Consignment> </ROOT> 解析xml文 ...
- JAVA中封装JSONUtils工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- 在JAVA中封装JSONUtil工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
随机推荐
- LNAMP架构中后端Apache获取用户真实IP地址的2种方法(转)
一.Nginx反向代理配置: 1.虚拟主机配置 复制代码代码如下: location / { try_files $uri @apache;} location @apache {interna ...
- 编译 curl with ssl
安装 openssh后,使用 curl 的 ./configure --with-ssl 时,报错“找不到 ssl”.因为 curl在 /usr/local/ssl的安装目录下找动态连接库.而ssl默 ...
- Cocos2dx 把 glview 渲染到 Qt 控件上(Mac 环境)
本文原链接:http://www.cnblogs.com/zouzf/p/4423256.html 环境:Mac 10.9.2 Xcode5.1.1 Qt5.3 cocos2dx-2.2.4 ...
- QTP对象管理
QTP对象库管理 - 动态绑定对象库文件:http://blog.csdn.net/testing_is_ ... le/details/20569843 用ObjectRepositoryUtil动 ...
- Second Day learning English
Today I have set my Microsoft word program, use it send documents to the blog site.
- 使用SQL联合查询来构建临时vo对象的应用
联合查询: 表1: team球队表 表2:schedule 赛程表 需要数据: 球队名称.主队ID.主队名称.客队ID.客队名称.胜负情况 方法1. Object数组取出列和数值 import jav ...
- QT编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)
最近这阵子,接了个私活,封装一个开发包俗称的SDK给客户调用,查阅了很多人家的SDK,绝大部分用VC编写,而且VC6.0居多,估计也是为了兼容大量的XP用户及IE浏览器,XP自带了VC6.0运行库,所 ...
- S5PV210之Sate210-F DIY硬件,移植uboot,kernel,android 活动现在已经进入实施阶段吗,欢迎广大网友参与 !
大家一起来diy 超低价四核的exynos4412或者Cortex A8S5pv210开源开发板 商业版Sate210已经完成了好久了.Sate4412 也已经出来.但是这两个接口非常全,主要是针对企 ...
- GNU GCC 扩展属性
http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html constructor destructor constructor (prior ...
- 【翻译】VSM 和触发器
原文:The VisualStateManager and Triggers Author:Carole Snyder Silverlight 推出了可视化状态管理器( Visual State Ma ...