`

JSONOBject中保存的Date值

 
阅读更多

JSONObject在装载Date类型数据时,会把一个Date按照既定的时间格式拆分,拼成一组json对,保存起来,格式如下:

{"id":"id","time":{"time":1403514899117,"minutes":14,"seconds":59,"hours":17,"month":5,"year":114,

"timezoneOffset":-480,"day":1,"date":23},"name":"ss"}。如果要保存为能看懂的时间值,只能通过把Date格式化为字符串后在保存,或者利用JsonValueProcessor的子类对象,把Date过滤成能看懂的一个时间了格式,如下:

 

1、创建一个JsonValueProcessor的实现类【JsonDateValueProcessor】

 

public class JsonDateValueProcessor implements JsonValueProcessor {

    private String dateFormate = "yyyy-MM-dd HH:mm:ss"; // default

    public JsonDateValueProcessor() {
    }

    public JsonDateValueProcessor(String dateFormate) {
        this.dateFormate = dateFormate;
    }

    public Object processArrayValue(Object value, JsonConfig jsonConfig) {
        return process(value, jsonConfig);
    }

    public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) {
        return process(value, jsonConfig);
    }

    private Object process(Object value, JsonConfig jsonConfig) {
        if (value instanceof Date) {
            String str = new SimpleDateFormat(dateFormate).format((Date) value);
            return str;
        }
        return value == null ? null : value.toString();
    }

}

 

2、创建一个普通的javaBean,省略。

3、通过JSONObject.fromObject(bean, JsonConfig)把javaBean转化成JsonObject

       

        Testd bean = new Testd();
        bean.setId("id");
        bean.setName("ss");
        bean.setTime(new Date());
        //结果1 没有利用JsonValueProcessor过滤
        JSONObject jo = JSONObject.fromObject(bean);
        System.out.println(jo.toString() + "======================");
       
       
        JsonConfig defaultJsonConfig = new ExtJsonConfig();
        defaultJsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor("yyyy-MM-dd HH:mm:ss"));
        defaultJsonConfig.registerJsonValueProcessor(BaseCustomEnum.class, new JsonCustomEnumEnumValueProcessor());
        defaultJsonConfig.setJavaPropertyFilter(new ExtPropertyFilter(defaultJsonConfig));

 

         // 结果2 利用JsonValueProcessor过滤
        JSONObject jo1 = JSONObject.fromObject(bean, defaultJsonConfig);
        System.out.println(jo1.toString() + "=======++++++===============");

 

打印出来的结果:

结果1:

{"id":"id","time":{"time":1403514899117,"minutes":14,"seconds":59,"hours":17,"month":5,"year":114,

"timezoneOffset":-480,"day":1,"date":23},"name":"ss"}======================

 

结果2:

{"id":"id","time":"2014-06-23 17:14:59","name":"ss"}=======++++++===============

所以,JSONObject中保存的Date应该需要格式化,要不保存后的值在程序中不好用。

 

分享到:
评论

相关推荐

    JsonObject转换Date日期

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

    java的JsonObject对象提取值方法

    本篇将详细介绍如何在Java中使用`JsonObject`来提取JSON数据中的值,主要通过阿里巴巴的Fastjson库和Jackson库来演示。 首先,我们来看第一种格式的JSON数据: ```json [ { "success": true, "data": [ { ...

    jsonobject

    `JSONObject`是Java中处理JSON的一种常见工具,它允许我们创建、解析和操作JSON对象。在Java中,`JSONObject`是org.json库的一部分,这个库提供了处理JSON的各种功能。 `JSONObject`类是用于表示JSON对象的Java类。...

    JsonObject

    键必须是字符串,而值可以是各种JSON数据类型,如字符串、数字、布尔值、数组、其他JsonObject或其他JsonElement。 使用JsonObject,你可以创建、修改和读取JSON数据。例如: 1. 创建JsonObject: ```java Gson ...

    jsonObject

    ### JSON在Java中的应用:解析`jsonObject`与`jsonArray` #### 概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在...

    JsonObject(免分)

    2. **添加键值对**:使用`put()`方法向JsonObject中添加键值对,键必须是字符串,值可以是各种类型,包括基本类型、字符串、其他JsonObject或JsonArray。 ```java jsonObject.put("key", "value"); ``` 3. **获取值...

    jsonobject.zip

    这个“jsonobject.zip”压缩包很可能包含了使用JSONObject所需的全部依赖库,确保你能在Java项目中正确地导入和使用JSONObject类。 为了在Java中使用JSONObject,首先你需要了解JSON的基本结构。JSON数据由键值对...

    org.json.JSONObject 包下载

    `org.json.JSONObject`是Java编程语言中用于处理JSON(JavaScript Object Notation)数据的一个轻量级库。这个库由Mozilla Public License提供,广泛应用于需要在Java应用中进行JSON解析、生成和操作的场景。JSON是...

    JSONObject对象依赖的jar包

    当涉及到JSON在Java中的处理时,`JSONObject`类扮演着至关重要的角色。这个类主要由`org.json`库提供,它允许我们以键值对的形式操作JSON对象。 `JSONObject`是`org.json`库中的一个核心类,它提供了创建、读取和...

    JAVA JSONObject Jar包

    在Java中,处理JSON数据时,一个常用的库是`JSONObject`,它来自于org.json包。这个`JAVA JSONObject Jar包`包含了处理JSON对象所需的类和方法。 JSONObject是org.json库中的核心类,它允许我们创建、读取和修改...

    org.json.JSONObject引用依赖包

    - `new JSONObject(Map map)` 从Map对象中创建一个JSONObject,其中Map的键是字符串,值可以是基本类型或可转化为JSON的对象。 - `JSONObject(string jsonText)` 从JSON格式的字符串创建JSONObject。 2. **添加...

    JSONObject相关依赖架包

    在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换...这样,你就可以在代码中调用如`JSONArray.parseArray(String json)`、`JSONObject.fromObject(Object obj)`等方法,轻松地进行JSON操作了。

    使用JSONObject解析json数据

    读取`JSONObject`中的数据,我们可以通过键来获取对应的值: 1. `getString("key")`:获取字符串值。 2. `getInt("key")` / `getLong("key")`:获取整数或长整数值。 3. `getBoolean("key")`:获取布尔值。 4. `...

    齐全JsonObject

    JsonObject是.NET开发中处理JSON数据的一个重要工具,尤其在C#环境中,它提供了方便的方法将JSON格式的数据转换为C#对象,以及将C#对象转换为JSON字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换...

    使用JsonObject所需要的jar包

    在Java编程环境中, JsonObject是Java JSON处理库Gson的一个关键组件。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务和应用程序之间的数据传输。Gson库由Google开发,允许我们将...

    使用JSONObject需要用到的jar包

    在Java编程中,JSONObject是一个非常常用的库,用于处理JSON(JavaScript Object Notation)数据格式。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。当我们需要在Java程序中操作...

Global site tag (gtag.js) - Google Analytics