项目中,经常会用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”格式。
相关推荐
最近在研究Webservice的时候遇到一个问题,把java对象转化问json后传过去,接受的是String类型,怎么恢复到原来的java对象呢,后来再一个项目中看到了转换方法,转换顺序为javaBean--jsonObject--jsonString,还原...
赠送jar包:android-json-0.0.20131108.vaadin1.jar; 赠送原API文档:android-json-0.0.20131108.vaadin1-javadoc.jar; 赠送源代码:android-json-0.0.20131108.vaadin1-sources.jar; 赠送Maven依赖信息文件:...
JsonObject转换Date日期的时候出现问题解决date封装成json数据出现的问题
在web项目中经常会用到json数据(如:struts2处理请求返回json数据给jsp解析),因此,JSONObject对象是必备的,这时就需要引入相关的jar包了。 json所需要的jar包如下: json-lib-2.4-jdk15.jar json所依赖的jar...
NULL 博文链接:https://huibin.iteye.com/blog/680822
最新的json-lib,方便地处理jsonobject 资源清单 json-lib-2.3-jdk15.jar 文档: json-lib-2.3-jdk15-javadoc.jar 依赖: ezmorph-1.0.6.jar commons-beanutils-1.8.3.jar commons-lang-2.5.jar morph-1.1.1.jar ...
jar包如下:commons-beanutils-1.7,commons-collections,commons-lang,commons-logging-1.1.1,ezmorph, gson-2.2.1,gson-2.2.1-sources,json-lib-2.2.2-jdk15
1.json转map:没有现成的方法,需要自己进行封装; 2.map转json:JSONObject.fromObject(map); 3.示例:http://www.cnblogs.com/Marydon20170307/p/9317889.html
json-lib-2.4-jdk15的jar包和源码,便于大家使用net.sf.json.JSONObject及阅读源码。 资源的官方网站http://json-lib.sourceforge.net/
jsonobject-0.9.10-cp39-cp39-win32
jsonobject-0.9.10-cp38-cp38-win32
jsonobject-0.9.9-cp36-cp36m-win32
jsonobject-0.9.9-cp35-cp35m-win32
jsonobject-0.9.9-cp27-cp27m-win32
jsonobject-0.9.10-cp37-cp37m-win32
jsonobject-0.9.10-cp39-cp39-win_amd64
jsonobject-0.9.10-cp38-cp38-win_amd64
//字符串json转换成json, 根据情况是用JSONArray或JSONObject @Test public void testJsonStrToJSON(){ JSONArray jsonArray = JSONArray.fromObject( "['json','is','easy']" ); System.out.println( ...
jsonobject-0.9.9-cp36-cp36m-win_amd64
jsonobject-0.9.9-cp35-cp35m-win_amd64