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的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
随机推荐
- 使用aspose.cell导出excel需要注意什么?
1.如果导出的数据源是汇总出来的,最好方法是将数据源放到缓存里面,当基本数据源变化的时候,在改变数据2.使用模板导出EXCEL,这样很多样式可以在模板文件里面直接设置,例如:默认打开页签,让列头固定3 ...
- WinStore之Application Data
一.Application Data简介 Applicaion Data相当于桌面应用的注册表,存储一些用户配置信息,如运行时状态,用户喜好等,需要注意的时,当卸载应用时,这些数据会被删除,所以不要存 ...
- swift 类和结构体
1:类和结构体定义 类和结构体分别通过关键字class 和struct定义. swift的编码风格是类class和结构体struct名字使用大写字母开头的匈牙利表示法,相反的.类的方法和属性则用小写字 ...
- Idea 201601注册码
参考链接 http://blog.csdn.net/u010310183/article/details/51162137 在license 下面输入 http://www.iteblog.com/i ...
- [LeetCode] Additive Number
Af first I read the title as "Addictive Number". Anyway, this problem can be solved elegan ...
- LeetCode: 3_Longest Substring Without Repeating Characters | 求没有重复字符的最长子串的长度 | Medium
题目: Given a . For . 解题思路: 这个题让找一个字符串中具有不重复单词的最长子串的长度,如:ababc,子串为abc,长度为3.有这么几个方法: 方法一: 依赖字符串本身的一些特有函 ...
- Qt Error: dependent '..\***' does not exist.
大概意思:所依赖的资源不存在. 实际上是工程找不到所依赖的资源. 本人的解决方案(可能拙劣,也不一定是正道):将资源拷贝到工程目录下.
- php 将一个二维数组转换成有父子关系的数组
<?php /** * Tree 树型类(无限分类) * * @author Kvoid * @copyright http://kvoid.com * @version 1.0 * @acce ...
- [Git] 快速签出与更新所有远程分支.md
git-fetch 命令从远程仓库复制 heads 和 tags 信息到本地,保存在临时文件 .git/FETCH_HEAD 中以备 git-merge 命令使用. 你可以使用 git fetch 命 ...
- PE渲染引擎 一
PE是我业余时间做的一个纯dx11的渲染框架.主要就是练手.如果有时间,会把它“扩展”成真正的引擎(标配至少要有个对应的编辑器吧 -_!!). 目前实现的有: obj文件加载,binormal计算. ...