`
dengminhui
  • 浏览: 167974 次
  • 来自: ...
社区版块
存档分类
最新评论

Json中日期处理

阅读更多

json-lib中在讲一个date类型转化时,将会有一个问题:json对象中该date类型将按照Java中类字段的形式保存下来,在程序中使用时及其不方便,现将解决方法贴出,如下所示:

 

1 首先重写一个Processor

import java.text.DateFormat;
import java.text.SimpleDateFormat;

import java.util.Date;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;

public class DateJsonValueProcessor implements JsonValueProcessor {

    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd HH:mm:ss";
    private DateFormat         dateFormat;

    /**
     * 构造方法.
     * 
     * @param datePattern 日期格式
     */
    public DateJsonValueProcessor(String datePattern){
        try {
            dateFormat = new SimpleDateFormat(datePattern);
        } catch (Exception ex) {
            dateFormat = new SimpleDateFormat(DEFAULT_DATE_PATTERN);
        }
    }

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

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

    private Object process(Object value) {
        return dateFormat.format((Date) value);
    }
}

 

2 将上面的processor配置到使用的jsonConfig中

    /**
     * 配置json-lib需要的excludes和datePattern.
     * 
     * @param excludes 不需要转换的属性数组,如果没有可以设置为null
     * @param datePattern 日期转换模式
     * @return JsonConfig 根据excludes和dataPattern生成的jsonConfig,用于write
     */
    public static JsonConfig configJson(String[] excludes, String datePattern) {
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.setExcludes(excludes);
        jsonConfig.setIgnoreDefaultExcludes(false);
        jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT);
        jsonConfig.registerJsonValueProcessor(Date.class, new DateJsonValueProcessor(datePattern));

        return jsonConfig;
    }

 

3将Object或者Array转化为JSON

jsonArray = JSONArray.fromObject(someArray, config);
jsonObject=JSONObject.fromObject(object, jsonConfig);
 

另外还有另外一个办法,即在页面进行转化,可使用以下一句代码搞定:

formatDate(new Date(commentDate["time"]),"yyyy-MM-dd HH:mm:ss")

不过必须使用本文附件的js

分享到:
评论

相关推荐

    处理JSON日期转换

    在实际应用中,处理JSON日期转换时,还需要考虑时区问题,因为JSON数据可能来自不同的时区。`json-lib`库允许自定义日期格式和时间戳格式,以确保在解析和序列化时的一致性。此外,现在的许多项目更倾向于使用`...

    JSON转换为JAVA对象及日期格式转换处理 -

    JSON转换为JAVA对象及日期格式转换处理 -

    Json处理工具类

    - `java.sql.Date`: SQL日期处理。 - `java.text.ParseException`: 解析异常处理。 - `java.text.SimpleDateFormat`: 日期格式化。 - `java.util.ArrayList`: 动态数组实现。 - `java.util.List`: 定义列表接口。 - ...

    Json 对日期类型的数据转换

    JSON(JavaScript Object Notation)是一种轻量级...可以使用标准的ISO 8601格式,也可以自定义日期格式,甚至利用第三方库如moment.js来增强日期处理的功能。在实际项目中,选择哪种方式取决于具体需求和项目复杂度。

    json日期格式化

    2. **JavaScript中的日期处理** 在JavaScript中,我们可以使用`Date`对象来处理日期。创建一个`Date`对象并传入日期字符串,可以将字符串解析为日期对象。然后,我们可以使用`toDateString()`、`toUTCString()`、`...

    JS处理json日期格式化问题

    对于从C#返回的日期字段,当进行JSON序列化后,在前台JS里显示的并不是真正的日期,这让我们感觉很不爽,我们不可能为了这东西,把所有日期字段都变成string吧,所以,找了一个JS的扩展方法,来实现这个功能 ...

    json数据 处理实例

    在C#中,我们通常使用.NET框架提供的System.Text.Json或第三方库如Newtonsoft.Json(Json.NET)来处理JSON。下面我们将深入探讨这两个库在处理JSON数据时的关键知识点。 1. **System.Text.Json** .NET 5及更高...

    json与对象相互转换系列处理

    - 在处理日期时,不同语言可能有不同的处理方式,需要特别注意。 - 安全性问题:在处理用户输入的JSON时,应确保进行适当的验证和清理,防止JSON注入攻击。 了解并熟练掌握JSON与对象的转换对于开发人员来说至关...

    java中json处理的使用.doc

    - 文档中还提到了`getObject4JsonString`方法,这个方法用于从JSON字符串反序列化到指定类型的Java对象,这是JSON处理中的常见操作。 在实际开发中,除了`net.sf.json`库,还有其他流行的Java JSON库,如Jackson、...

    Newtonsoft.Json C# MVC中json对象json字符串处理2.0版3.5版4.0版4.5版(历史版本全)

    在实际开发中,Newtonsoft.Json还支持许多高级特性,如忽略空值、自定义日期格式、处理循环引用、自定义类型转换等。它还提供了LINQ to JSON API,可以直接在JSON结构上进行查询操作。此外,`JsonSerializerSettings...

    在JavaScript中将日期解析为Json

    虽然`JSON.stringify()`处理日期的方式在现代浏览器中是标准的,但在旧版本的IE(尤其是IE8及以下)中,它可能会将日期转换为`"[object Date]"`这样的字符串。为了解决这个问题,你可以提供一个替换函数作为`...

    Java中使用Json

    首先,Java中处理JSON的主要工具有两个:Jackson和Gson。这两个库提供了API,可以帮助我们轻松地将Java对象转换为JSON字符串,以及将JSON字符串反序列化为Java对象。 1. **Jackson库** Jackson是Java中常用的JSON...

    Java中 json处理的所用到的所有Jar包

    2. `commons-lang`:提供语言级别的扩展,如字符串和日期处理。 3. `commons-beanutils`:简化JavaBean与JSON之间的映射。 4. `json-lib`:核心JSON处理库,实现JSON的序列化和反序列化。 5. `ezmorph`:对象转换...

    C#API接口JSON数据结构处理命名空间引用DLL文件

    5. **日期处理**:JSON标准不包含日期类型,因此需要特定方式处理日期。Json.NET允许自定义日期格式化器。 6. **XML与JSON转换**:在某些情况下,可能需要在JSON和XML之间进行转换。Json.NET提供了便捷的方法来实现...

    json转换工具,支持日期

    `json-lib`是一个流行的Java库,用于处理JSON格式,它提供了多种类型到JSON的转换功能,包括日期和时间。 本文将详细介绍如何使用`json-lib`进行JSON转换,并特别关注日期的处理。在提供的压缩包文件中,我们可以...

    springboot json时间格式化处理的方法

    在Spring Boot中处理JSON数据的时间格式化是一个常见的需求,尤其是当后端需要与前端或其他服务通过JSON格式交换日期时间数据时。为了满足不同场景下对时间格式的要求,开发者可以使用Jackson库提供的注解来解决这一...

    java处理JSON格式数据的通用类

    `JsonUtil`类可能还包括其他处理JSON的方法,如将Java对象序列化为JSON字符串、处理嵌套的JSON结构、处理日期等复杂类型等。通常,这类工具类会利用第三方库,如`net.sf.json`或`com.google.gson`,它们提供了丰富的...

    后台日期类型转json字符串传到页面

    这样的库将Java对象转换为JSON时,如果不做特殊处理,JSON字符串中的日期可能不会以我们期望的“年-月-日 时:分:秒”格式呈现,而是默认的日期时间格式,这可能对前端展示造成困扰。 下面是一个简单的例子来说明这...

    json数据处理简单的源代码

    虽然JavaScriptSerializer可以满足基本需求,但更推荐使用第三方库Json.NET(Newtonsoft.Json),它提供了更高效、更灵活的JSON处理功能,例如支持自定义日期格式化、忽略空值等。 通过阅读“json数据处理.txt”...

    Struts2处理json简介及注意事项

    在Struts2中,处理JSON主要包括以下几个步骤: 1. **添加依赖**:首先,需要在项目中引入Struts2的JSON插件。通常,这可以通过在Maven的pom.xml文件中添加相关依赖,或者在构建路径中手动添加struts2-json-plugin....

Global site tag (gtag.js) - Google Analytics