`

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

    博客分类:
  • Java
 
阅读更多

项目中,经常会用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”格式。

 

3
0
分享到:
评论
11 楼 masuweng 2017-07-25  
我的就是这么弄得,到了页面还是那个格式的 。
10 楼 masuweng 2017-07-25  
    
9 楼 zcbcba123 2015-09-28  
很好用! 问题解决!O(∩_∩)O谢谢
8 楼 koreyoshi 2014-12-16  
{time=1418376181000, minutes=23, seconds=1, hours=17, month=11, year=114, timezoneOffset=-480, day=5, date=12}  这种格式转换不了呢,能指导下吗
7 楼 spp_1987 2014-12-05  
我想时间带 小时分钟秒数,结果 我在辅助类里面 更改了 格式化字符串格式,可是得到的还只是到天。
6 楼 spp_1987 2014-12-03  
我从数据库查询得到list 对象,里面包含 时间类型字符串,可是格式化成json格式,还是出现问题。 如 出现上的格式 。
5 楼 spp_1987 2014-12-03  
这里 有格式化 yyyy-mm-dd 不能 实现格式化到分钟那块 ,或者date里面有什么 就格式化到哪里?
4 楼 白糖_ 2014-09-09  
jingjdongdheaven 写道
jingjdongdheaven 写道
json.fromObject(object, jsonConfig) 
我走到这块儿老报错呢。

严重: Servlet.service() for servlet DispatcherJsonServlet threw exception
java.lang.NoSuchMethodError: net.sf.json.JSONObject.fromObject(Ljava/lang/Object;Lnet/sf/json/JsonConfig;)Lnet/sf/json/JSONObject;

确认你的object对象参数是一个JavaBean,我看你调用json.fromObject(object, jsonConfig) 中的object似乎是一个lang类型
3 楼 jingjdongdheaven 2014-09-09  
jingjdongdheaven 写道
json.fromObject(object, jsonConfig) 
我走到这块儿老报错呢。

严重: Servlet.service() for servlet DispatcherJsonServlet threw exception
java.lang.NoSuchMethodError: net.sf.json.JSONObject.fromObject(Ljava/lang/Object;Lnet/sf/json/JsonConfig;)Lnet/sf/json/JSONObject;
2 楼 jingjdongdheaven 2014-09-09  
json.fromObject(object, jsonConfig) 
我走到这块儿老报错呢。
1 楼 小龙哥 2014-02-19  
很实用的技巧!

相关推荐

    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