项目中,经常会用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
JSONObject cannot be resolved to a type 是因为缺少对应的依赖包:org-json.rar 包的来源github的项目:https://github.com/stleary/JSON-java中的Readme可以找到依赖包的地址。
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