JSONObject转换JSON--将Date转换为指定格式
项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的时间对象,这时JSONObject默认会将Date属性转换成这样的格式:
- {"nanos":0,"time":-27076233600000,"minutes":0,"seconds":0,"hours":0,"month":11,"timezoneOffset":-480,"year":-789,"day":5,"date":22}
而这种格式肯定是非常难以理解的,为了将Date转换为我们认识的“yyyy-MM-dd”格式,需要做以下操作。
首先创建一个时间转换器
- public class JsonDateValueProcessor implements JsonValueProcessor {
- private String format ="yyyy-MM-dd";
- public JsonDateValueProcessor() {
- super();
- }
- public JsonDateValueProcessor(String format) {
- super();
- this.format = format;
- }
- @Override
- public Object processArrayValue(Object paramObject,
- JsonConfig paramJsonConfig) {
- return process(paramObject);
- }
- @Override
- public Object processObjectValue(String paramString, Object paramObject,
- JsonConfig paramJsonConfig) {
- return process(paramObject);
- }
- private Object process(Object value){
- if(value instanceof Date){
- SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);
- return sdf.format(value);
- }
- return value == null ? "" : value.toString();
- }
- }
然后在调用JSONObject之前创建一个JsonConfig,并且将上一步定义的date转换器注册进去:
- JsonConfig jsonConfig = new JsonConfig();
- jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor());
最后将JsonConfig放入JSONObject对象中,这里针对不同的数据类型有多种方式放入JsonConfig:
- JSONObject json = new JSONObject();
- //Map转JSON
- json.putAll(Map, jsonConfig);
或者
- JSONObject json = new JSONObject();
- //JavaBean转JSON
- json.fromObject(object, jsonConfig)
最后我们看到的结果就是只要JavaBean中有Date对象,转换成JSON字符串时就会变成“yyyy-MM-dd”格式。
JSONObject转换JSON--将Date转换为指定格式的更多相关文章
- JSONObject转换JSON之将Date转换为指定格式(转)
项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的 ...
- Java转换Json日期/Date(1487053489965+0800)/格式以及js时间格式 Tue Feb 14 2017 14:06:32 GMT+0800
/Date(1487053489965+0800)/用Java怎么转换成yyyy-MM-dd的格式 Tue Feb 14 2017 14:06:32 GMT+0800用Java怎么转换成yyyy-MM ...
- spring boot @ResponseBody转换JSON 时 Date 类型处理方法,Jackson和FastJson两种方式,springboot 2.0.9配置fastjson不生效官方解决办法
spring boot @ResponseBody转换JSON 时 Date 类型处理方法 ,这里一共有两种不同解析方式(Jackson和FastJson两种方式,springboot我用的1.x的版 ...
- 在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式
一.EL表达式 首先,在jsp页面引入<fmt> tags,<%@ taglib prefix="fmt" uri="http://java.sun.c ...
- 【Python爬虫实战--2】时间戳转换为指定格式日期
摘自:http://www.2cto.com/kf/201406/311477.html (1)方法: 方法一: 利用localtime()转换为时间数组,然后格式化为需要的格式,如 timeStam ...
- JSONObject 转换 JSON复杂对象
Bean定义: public class GetM100DataResponse { private String service;//接口代码 private String sessionId;// ...
- JS将JSON日期转换为指定格式的日期
1.引入JS日期转换的函数库 function Format(now,mask) { var d = now; var zeroize = function (value, length) { if ...
- AngularJs转换json日期/Date(00000)/
//过滤器ngApp.filter('jsonDate', function ($filter) { return function (input, format) { var timestamp = ...
- 毫秒数转换为指定格式日期的js代码
var format = function(time, format){ var t = new Date(time); var tf = function(i){return (i < 10 ...
随机推荐
- Redis - pipelining(管道)
客户端向服务器发送一个查询请求,并监听 socket 返回,等待服务器响应.通常是阻塞模式,在收到服务器响应之前是挂起的,不能继续发送请求. 可以使用管道来改善这种情况.在使用管道的情况下,客户端可以 ...
- 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究 转载
1.XA XA是由X/Open组织提出的分布式事务的规范.XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接 ...
- js中的正则表达式
一.正则中的汉字 常见的:/[^\x00-\x7F]+?/ /^[\u2E80-\u9FFF]+$/ 过滤汉字即是:string.replace(/^[\u2E80-\u9FFF]+$/g, &quo ...
- union (共用声明和共用一变量定义)
"联合"是一种特殊的类,也是一种构造类型的数据结构.在一个"联合"内可以定义多种不同的数据类型, 一个被说明为该"联合"类型的变量中,允许装 ...
- Spring <bean> 参数意义
1.id bean的唯一标识, 2.class 类的完全限定名, 3.parent 父类bean定义的名字. 如果没有任何声明,会使用父bean,但是也可以重写父类.重写父类时,子bean 必须与父b ...
- 使用sublime时报编码错误
在执行Python脚本时报如下错误: UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-78: ordin ...
- SurfaceOutput
下面着重分析一下surface shader中是如何使用BlinnPhong光照模型的,为以后写代码做铺垫.源文件取自Unity3D官网下载的builtin_shaders, 源文件名为Normal- ...
- WPF CAL 计算器
界面最终结果: 下载地址:https://skydrive.live.com/redir?resid=25C3908AA2038BDB!148&authkey=!ADR71XdB04LipYE
- sphinx 源码阅读之分词,压缩索引,倒排——单词对应的文档ID列表本质和lucene无异 也是外部排序再压缩 解压的时候需要全部扫描doc_ids列表偏移量相加获得最终的文档ID
转自:http://github.tiankonguse.com/blog/2014/12/03/sphinx-token-inverted-sort.html 外部排序 现在我们的背景是有16个已经 ...
- Lua知识备忘录
最近对Lua很感兴趣,以下是本阶段学习的总结,包含三部分,一部分是基础语法,一部分是扩展和解释器嵌入,最后一部分是Lua小练习. 知识涉及:Lua语言编程基础:Lua&C++:Lua扩展.嵌入 ...