`

JSONObject转换JSON--将Date转换为指定格式

    博客分类:
  • Java
 
阅读更多

项目中,经常会用JSONObject插件将JavaBean或List<JavaBean>转换为JSON格式的字符串,而JavaBean的属性有时候会有java.util.Date这个类型的时间对象,这时JSONObject默认会将Date属性转换成这样的格式:

 

Html代码  收藏代码
  1. {"nanos":0,"time":-27076233600000,"minutes":0,"seconds":0,"hours":0,"month":11,"timezoneOffset":-480,"year":-789,"day":5,"date":22}  

 而这种格式肯定是非常难以理解的,为了将Date转换为我们认识的“yyyy-MM-dd”格式,需要做以下操作。

 

 

首先创建一个时间转换器

 

Java代码  收藏代码
  1. public class JsonDateValueProcessor implements JsonValueProcessor {  
  2.     private String format ="yyyy-MM-dd";  
  3.       
  4.     public JsonDateValueProcessor() {  
  5.         super();  
  6.     }  
  7.       
  8.     public JsonDateValueProcessor(String format) {  
  9.         super();  
  10.         this.format = format;  
  11.     }  
  12.   
  13.     @Override  
  14.     public Object processArrayValue(Object paramObject,  
  15.             JsonConfig paramJsonConfig) {  
  16.         return process(paramObject);  
  17.     }  
  18.   
  19.     @Override  
  20.     public Object processObjectValue(String paramString, Object paramObject,  
  21.             JsonConfig paramJsonConfig) {  
  22.         return process(paramObject);  
  23.     }  
  24.       
  25.       
  26.     private Object process(Object value){  
  27.         if(value instanceof Date){    
  28.             SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.CHINA);    
  29.             return sdf.format(value);  
  30.         }    
  31.         return value == null ? "" : value.toString();    
  32.     }  
  33.   
  34. }  

 

 

然后在调用JSONObject之前创建一个JsonConfig,并且将上一步定义的date转换器注册进去:

Java代码  收藏代码
  1. JsonConfig jsonConfig = new JsonConfig();  
  2. jsonConfig.registerJsonValueProcessor(Date.classnew JsonDateValueProcessor());  

 

最后将JsonConfig放入JSONObject对象中,这里针对不同的数据类型有多种方式放入JsonConfig:

Java代码  收藏代码
  1. JSONObject json = new JSONObject();  
  2. //Map转JSON  
  3. json.putAll(Map, jsonConfig);  

 或者

Java代码  收藏代码
  1. JSONObject json = new JSONObject();  
  2. //JavaBean转JSON  
  3. json.fromObject(object, jsonConfig)  

 

最后我们看到的结果就是只要JavaBean中有Date对象,转换成JSON字符串时就会变成“yyyy-MM-dd”格式。

 

分享到:
评论

相关推荐

    json-lib-2.4-jdk15-sources.jar

    1. **JSON与Java对象之间的转换**:它可以将Java的ArrayList、HashMap、Date、XML等对象转换成JSON格式,反之亦然。这极大地方便了数据交换和持久化。 2. **XML与JSON的互转**:在许多情况下,需要在JSON和XML之间...

    JsonObject转换Date日期

    JsonObject转换Date日期的时候出现问题解决date封装成json数据出现的问题

    json-lib-2.3-jdk15-sources javadoc .jar

    JSON-lib是一个Java库,它提供了将Java对象转换为JSON表示以及从JSON文本反序列化回Java对象的功能。该库的版本是2.3,针对JDK 15进行了优化。"json-lib-2.3-jdk15-sources.jar"文件包含了该库的源代码,这对于...

    关于Json-lib对日期型的转换解决方法

    通常,Json-lib会将日期转换为Unix时间戳或者ISO 8601格式的字符串,但这可能不满足所有需求。有些情况下,我们可能希望自定义日期的格式,例如按照“年-月-日”或“月/日/年”的格式输出。 解决这个问题的关键在于...

    json-lib-2.4-jdk15及其依赖jar包

    3. **类型转换**:库支持将Java对象如Date、Number、String、Map、List等与JSON对象相互转换,方便在Java代码中处理JSON数据。 4. **序列化和反序列化**:用户可以通过`json-lib`将Java对象序列化为JSON字符串,...

    json-lib-2.0-jdk15-sources.zip

    例如,它可以将Java的Date对象转换为JSON格式的日期字符串,或将JSON数组转换为Java的ArrayList。 4. **核心类(Core Classes)**:像`JSONObject`、`JSONArray`、`JSONFunction`等是json-lib的核心类,它们代表了...

    jsonjson-lib-2.3-jdk15.zip

    3. **处理日期和时间**:通过`net.sf.json.util.JSONDate`,你可以将Java的Date对象转换为JSON格式,也可以将JSON中的日期字符串转换回Date。 4. **处理XML和JSON之间的转换**:`json-lib`提供`XML.toJSONObject()`...

    json-lib(所有依赖jar).zip

    而`json-lib`是一个Java库,用于将Java对象转换为JSON格式,同时也能将JSON内容反序列化回Java对象。这个压缩包"json-lib(所有依赖jar).zip"包含了`json-lib`库以及其运行所需的全部依赖,便于在Java项目中直接使用...

    java利用json-lib操作json

    总结起来,json-lib库为Java开发者提供了一种简单易用的方式来处理JSON数据,包括将Java对象转换为JSON格式,以及从JSON反序列化回Java对象。这对于进行Web服务开发或者需要与JSON格式数据交互的项目来说,是一个...

    json-lib-v2.4

    例如,`XMLUtils.toJSON()`可以将XML字符串转化为JSON格式,而`JSONObject.toXML()`则可以将JSON对象转换为XML字符串。 4. **复杂类型的处理**:除了基本类型和简单对象,`json-lib`还可以处理包括日期、数组、集合...

    json-lib-2.4-jdk15包含依赖JAR包

    7. **处理复杂类型**:`json-lib`还支持将Java的Map、List、Set、Date、自定义对象等复杂类型转换为JSON。 8. **错误处理**:在进行序列化和反序列化过程中,需要注意可能出现的异常,如`JSONException`,并进行...

    json-lib完整架包

    //字符串json转换成json, 根据情况是用JSONArray或JSONObject @Test public void testJsonStrToJSON(){ JSONArray jsonArray = JSONArray.fromObject( "['json','is','easy']" ); System.out.println( ...

    json2.4相关依赖jar包json-lib-2.4-jdk15.jar/ezmorph-1.0.6.jar 等6个jar包

    `json-lib`库支持将Java对象转换为JSON字符串,反之亦然,使得Java应用能够方便地与JSON数据交互。 另一个提到的依赖是`ezmorph-1.0.6.jar`,这是一个Java库,主要用于对象的动态转型。在处理JSON时,有时候我们...

    json-lib源码放出

    - `JsonSerializer`:将Java对象转换为JSON格式的工具类,支持多种Java类型如`Date`、`Map`、`List`等。 - `JsonDeserializer`:反之,将JSON文本解析回Java对象。 3. **JSON解析与生成**: - `NetProvider`、`...

    处理JSON日期转换

    首先调用`setDataFormat2JAVA()`设置日期格式,然后利用`JSONObject.fromObject(jsonString)`将JSON字符串转换为`JSONObject`,最后通过`JSONObject.toBean(jsonObject, clazz)`将JSON对象转换为指定类型的Java对象...

    jsonObject

    本文将基于`json-lib`库,深入探讨`jsonObject`与`jsonArray`在Java中的应用,以及如何将各种数据类型转换为JSON格式。 #### 关键知识点 ##### 1. JSONObject与JSONArray简介 `JSONObject`和`JSONArray`是`json-...

    json所必需的jar

    这个库提供了JSONObject、JSONArray、JSONString等类,使得我们可以方便地将Java对象转换为JSON字符串,或者从JSON字符串反序列化为Java对象。例如,我们可以创建一个JSONObject,添加键值对,然后将其转换为字符串...

    json转换工具,支持日期

    在Java开发中,经常需要将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象。`json-lib`是一个流行的Java库,用于处理JSON格式,它提供了多种类型到JSON的转换功能,包括日期和时间。 本文将详细介绍...

    Java开发,JSON需要的jar

    它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。这个库支持多种Java集合和类型,包括Map、List、Set、Date等。JSON Lib也支持Eclipse的动态类加载,使得它可以处理那些在运行时才...

Global site tag (gtag.js) - Google Analytics