`
牧羊人
  • 浏览: 213574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Json-lib 如何转换日期格式的字段

    博客分类:
  • java
阅读更多
json-lib-2.2可以为对应的class注册解析类,记住一定要2.2,2.1有同步问题。切记切记。
写一个DateJsonValueProcessor.java
package anni.core.web.json;

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

import java.util.Date;

import net.sf.json.JSONObject;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;


/**
 * @author Lingo
 * @since 2007-08-02
 */
public class DateJsonValueProcessor implements JsonValueProcessor {
    public static final String DEFAULT_DATE_PATTERN = "yyyy-MM-dd";
    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);
    }
}



然后在bean -> json的时候


    /**
     * write.
     *
     * @param bean obj
     * @param writer 输出流
     * @param excludes 不转换的属性数组
     * @param datePattern date到string转换的模式
     * @throws Exception 写入数据可能出现异常
     */
    public static void write(Object bean, Writer writer,
        String[] excludes, String datePattern) throws Exception {
        JsonConfig jsonConfig = configJson(excludes, datePattern);

        JSON json = JSONSerializer.toJSON(bean, jsonConfig);

        json.write(writer);
    }

    /**
     * 配置json-lib需要的excludes和datePattern.
     *
     * @param excludes 不需要转换的属性数组
     * @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;
    }

分享到:
评论

相关推荐

    json-lib-2.4-jdk15.jar

    json-lib是一个Java库,它提供了一种方便的方式来序列化和反序列化Java对象为JSON格式,以及将JSON数据转换回Java对象。 json-lib-2.4-jdk15.jar是json-lib的一个特定版本,适用于JDK 1.5环境。这个版本的库包含了...

    json-lib-2.2.2-jdk15.jar

    2. **XML与JSON互转**:json-lib还支持XML与JSON之间的转换,这在处理不同数据格式时非常有用。 3. **自定义序列化**:通过实现JSONAware接口或使用JSONSerializer的transform方法,开发者可以定制JSON序列化过程,...

    json-lib-2.3-jdk15基础jar包合辑

    - **数据存储**:在持久化框架如Hibernate中,JSON Lib可以用于将Java对象转换成JSON字符串,方便存储到数据库的JSON字段。 - **前端交互**:后端开发中,通过JSON格式与前端JavaScript进行数据交互,JSON Lib简化了...

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

    通过这种方式,Json-lib将在处理日期字段时使用我们定义的格式。 在提供的`date.js`文件中,虽然我们无法直接查看JavaScript代码内容,但可以推测这可能是一个示例脚本,展示了如何在JavaScript环境中处理与日期...

    JSON-lib框架,转换JSON、XML不再困难

    JSON-lib还支持自定义类型转换,通过实现`JsonValueProcessor`接口,你可以定义如何处理特定类型的字段。这在处理日期、自定义对象或其他特殊类型时非常有用。 此外,JSON-lib也能将Java对象转换为XML,以及将XML...

    json-lib-2.3-jdk15.jar和它的源码包

    4. **XML与JSON互转**:json-lib还提供了XML和JSON之间的转换功能,使得两种数据格式可以方便地互换。 5. **性能优化**:虽然JSON库众多,但json-lib在性能方面也有一定的优势,特别是在处理大量数据时。 6. **...

    json-lib相关所有包

    5. **自定义配置**:通过设置序列化配置,可以控制转换过程的行为,如忽略特定字段、自定义日期格式等。 总结起来,json-lib作为Java开发中的一个强大工具,简化了JSON操作,提高了开发效率。它的全面功能、良好的...

    json-lib-2.23

    4. **类型转换**:`json-lib`提供了一些工具类,如`JSONArray`和`JSONObject`,它们具有丰富的API,可以方便地进行JSON对象的操作,如添加、删除、修改元素,以及获取特定类型的值(如字符串、数字、日期等)。...

    json-lib-2.1-jdk15-javadoc.zip

    在实际开发中,JSON-Lib可以帮助Java开发者轻松地将Java对象转换为JSON字符串,或将JSON文本解析成Java对象。这对于Web服务、数据交换或者存储JSON格式的数据非常有用。例如,你可以用它来序列化Java对象以便在网络...

    JSON-lib

    JSON-lib允许通过实现`JsonConfig`接口并设置转换策略,来控制特定字段的序列化和反序列化行为。 7. **性能优化**:JSON-lib提供了几种不同的JSON实现,如Jackson、Gson等,可以根据性能需求选择最合适的实现。此外...

    struts2 相关jar包 包含json-lib-2.1.jar+struts2-json-plugin-2.1.8.1.jar

    该插件提供了许多配置选项,允许自定义JSON输出,包括忽略某些字段、自定义日期格式等。版本2.1.8.1代表了这个插件的特定版本,可能包含了一些性能优化和修复了已知的问题。 3. **Struts2的核心概念**: - **...

    json-lib-2.4-jdk15

    3. **json-lib-2.4-jdk15-javadoc**:这是`json-lib`库的API文档,包含了详细的类、接口、方法和字段说明。开发者可以通过查阅API文档快速了解如何使用库中的各种功能,提高开发效率。 使用`json-lib`,你可以执行...

    json-lib将json格式的字符串,转化为java对象的实例.docx

    2. **日期格式**:对于日期类型的字段,需要确保JSON字符串中的日期格式与Java中的日期格式相匹配。例如,文中提到的“yyyy-MM-dd HH:mm:ss”格式。 3. **异常处理**:在实际开发中,应妥善处理可能发生的异常,比如...

    java json-lib解决无循环的探索例子

    Java中的json-lib库是处理JSON数据的一个常用工具,它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。然而,在处理复杂的嵌套数据结构时,如果不小心可能会导致无限循环的问题。 在...

    json-lib之jar包,源代码及API文档

    在实际应用中,我们还需要注意一些关键点,例如处理日期类型的字段时,可能需要自定义日期格式化策略,或者在处理自定义对象时,确保它们实现了`java.io.Serializable`接口。此外,理解JSON-Lib对于null值的处理也很...

    使用json-lib进行Java和JSON之间的转换

    首先,json-lib是一个Java库,它提供了一系列的方法来将Java对象转换为JSON格式的字符串,以及将JSON格式的字符串反序列化回Java对象。这个库对于那些不支持原生JSON处理的旧版本JDK尤其有用,因为Java 6及以上版本...

    使用json-lib自定义复杂类型转换为Json字符串

    默认情况下,`json-lib`会尝试自动映射Java对象的字段到JSON键值对。例如,如果你有一个名为`Person`的类: ```java public class Person { private String name; private int age; // getters and setters } `...

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

    3. **XML与JSON的互转**:JSON-lib还支持XML和JSON之间的转换,这对于需要在XML和JSON格式之间切换的应用非常有用。 4. **支持多种类型的Java对象**:JSON-lib可以处理多种Java数据类型,如基本类型、数组、集合、...

    springmvc-json-lib.rar

    此外,我们还可以自定义JSON序列化和反序列化的规则,例如忽略某些字段、自定义日期格式等,通过创建Jackson的`ObjectMapper`实例并配置相关属性来实现。 最后,关于RAR文件,它是Microsoft的压缩文件格式,用于...

    json-lib 使用总结--java对象转json字符串

    比如,可以设置日期格式,处理 null 值的方式,以及自定义转换策略等。例如,要设置日期格式,可以这样做: ```java JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");...

Global site tag (gtag.js) - Google Analytics