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是一个Java库,它提供了一种方便的方式来序列化和反序列化Java对象为JSON格式,以及将JSON数据转换回Java对象。 json-lib-2.4-jdk15.jar是json-lib的一个特定版本,适用于JDK 1.5环境。这个版本的库包含了...
2. **XML与JSON互转**:json-lib还支持XML与JSON之间的转换,这在处理不同数据格式时非常有用。 3. **自定义序列化**:通过实现JSONAware接口或使用JSONSerializer的transform方法,开发者可以定制JSON序列化过程,...
- **数据存储**:在持久化框架如Hibernate中,JSON Lib可以用于将Java对象转换成JSON字符串,方便存储到数据库的JSON字段。 - **前端交互**:后端开发中,通过JSON格式与前端JavaScript进行数据交互,JSON Lib简化了...
通过这种方式,Json-lib将在处理日期字段时使用我们定义的格式。 在提供的`date.js`文件中,虽然我们无法直接查看JavaScript代码内容,但可以推测这可能是一个示例脚本,展示了如何在JavaScript环境中处理与日期...
JSON-lib还支持自定义类型转换,通过实现`JsonValueProcessor`接口,你可以定义如何处理特定类型的字段。这在处理日期、自定义对象或其他特殊类型时非常有用。 此外,JSON-lib也能将Java对象转换为XML,以及将XML...
4. **XML与JSON互转**:json-lib还提供了XML和JSON之间的转换功能,使得两种数据格式可以方便地互换。 5. **性能优化**:虽然JSON库众多,但json-lib在性能方面也有一定的优势,特别是在处理大量数据时。 6. **...
5. **自定义配置**:通过设置序列化配置,可以控制转换过程的行为,如忽略特定字段、自定义日期格式等。 总结起来,json-lib作为Java开发中的一个强大工具,简化了JSON操作,提高了开发效率。它的全面功能、良好的...
4. **类型转换**:`json-lib`提供了一些工具类,如`JSONArray`和`JSONObject`,它们具有丰富的API,可以方便地进行JSON对象的操作,如添加、删除、修改元素,以及获取特定类型的值(如字符串、数字、日期等)。...
在实际开发中,JSON-Lib可以帮助Java开发者轻松地将Java对象转换为JSON字符串,或将JSON文本解析成Java对象。这对于Web服务、数据交换或者存储JSON格式的数据非常有用。例如,你可以用它来序列化Java对象以便在网络...
JSON-lib允许通过实现`JsonConfig`接口并设置转换策略,来控制特定字段的序列化和反序列化行为。 7. **性能优化**:JSON-lib提供了几种不同的JSON实现,如Jackson、Gson等,可以根据性能需求选择最合适的实现。此外...
该插件提供了许多配置选项,允许自定义JSON输出,包括忽略某些字段、自定义日期格式等。版本2.1.8.1代表了这个插件的特定版本,可能包含了一些性能优化和修复了已知的问题。 3. **Struts2的核心概念**: - **...
3. **json-lib-2.4-jdk15-javadoc**:这是`json-lib`库的API文档,包含了详细的类、接口、方法和字段说明。开发者可以通过查阅API文档快速了解如何使用库中的各种功能,提高开发效率。 使用`json-lib`,你可以执行...
2. **日期格式**:对于日期类型的字段,需要确保JSON字符串中的日期格式与Java中的日期格式相匹配。例如,文中提到的“yyyy-MM-dd HH:mm:ss”格式。 3. **异常处理**:在实际开发中,应妥善处理可能发生的异常,比如...
Java中的json-lib库是处理JSON数据的一个常用工具,它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。然而,在处理复杂的嵌套数据结构时,如果不小心可能会导致无限循环的问题。 在...
在实际应用中,我们还需要注意一些关键点,例如处理日期类型的字段时,可能需要自定义日期格式化策略,或者在处理自定义对象时,确保它们实现了`java.io.Serializable`接口。此外,理解JSON-Lib对于null值的处理也很...
首先,json-lib是一个Java库,它提供了一系列的方法来将Java对象转换为JSON格式的字符串,以及将JSON格式的字符串反序列化回Java对象。这个库对于那些不支持原生JSON处理的旧版本JDK尤其有用,因为Java 6及以上版本...
默认情况下,`json-lib`会尝试自动映射Java对象的字段到JSON键值对。例如,如果你有一个名为`Person`的类: ```java public class Person { private String name; private int age; // getters and setters } `...
3. **XML与JSON的互转**:JSON-lib还支持XML和JSON之间的转换,这对于需要在XML和JSON格式之间切换的应用非常有用。 4. **支持多种类型的Java对象**:JSON-lib可以处理多种Java数据类型,如基本类型、数组、集合、...
此外,我们还可以自定义JSON序列化和反序列化的规则,例如忽略某些字段、自定义日期格式等,通过创建Jackson的`ObjectMapper`实例并配置相关属性来实现。 最后,关于RAR文件,它是Microsoft的压缩文件格式,用于...
比如,可以设置日期格式,处理 null 值的方式,以及自定义转换策略等。例如,要设置日期格式,可以这样做: ```java JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");...