项目中,经常会用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”格式。
相关推荐
1. **JSON与Java对象之间的转换**:它可以将Java的ArrayList、HashMap、Date、XML等对象转换成JSON格式,反之亦然。这极大地方便了数据交换和持久化。 2. **XML与JSON的互转**:在许多情况下,需要在JSON和XML之间...
JsonObject转换Date日期的时候出现问题解决date封装成json数据出现的问题
JSON-lib是一个Java库,它提供了将Java对象转换为JSON表示以及从JSON文本反序列化回Java对象的功能。该库的版本是2.3,针对JDK 15进行了优化。"json-lib-2.3-jdk15-sources.jar"文件包含了该库的源代码,这对于...
通常,Json-lib会将日期转换为Unix时间戳或者ISO 8601格式的字符串,但这可能不满足所有需求。有些情况下,我们可能希望自定义日期的格式,例如按照“年-月-日”或“月/日/年”的格式输出。 解决这个问题的关键在于...
3. **类型转换**:库支持将Java对象如Date、Number、String、Map、List等与JSON对象相互转换,方便在Java代码中处理JSON数据。 4. **序列化和反序列化**:用户可以通过`json-lib`将Java对象序列化为JSON字符串,...
例如,它可以将Java的Date对象转换为JSON格式的日期字符串,或将JSON数组转换为Java的ArrayList。 4. **核心类(Core Classes)**:像`JSONObject`、`JSONArray`、`JSONFunction`等是json-lib的核心类,它们代表了...
3. **处理日期和时间**:通过`net.sf.json.util.JSONDate`,你可以将Java的Date对象转换为JSON格式,也可以将JSON中的日期字符串转换回Date。 4. **处理XML和JSON之间的转换**:`json-lib`提供`XML.toJSONObject()`...
而`json-lib`是一个Java库,用于将Java对象转换为JSON格式,同时也能将JSON内容反序列化回Java对象。这个压缩包"json-lib(所有依赖jar).zip"包含了`json-lib`库以及其运行所需的全部依赖,便于在Java项目中直接使用...
总结起来,json-lib库为Java开发者提供了一种简单易用的方式来处理JSON数据,包括将Java对象转换为JSON格式,以及从JSON反序列化回Java对象。这对于进行Web服务开发或者需要与JSON格式数据交互的项目来说,是一个...
例如,`XMLUtils.toJSON()`可以将XML字符串转化为JSON格式,而`JSONObject.toXML()`则可以将JSON对象转换为XML字符串。 4. **复杂类型的处理**:除了基本类型和简单对象,`json-lib`还可以处理包括日期、数组、集合...
7. **处理复杂类型**:`json-lib`还支持将Java的Map、List、Set、Date、自定义对象等复杂类型转换为JSON。 8. **错误处理**:在进行序列化和反序列化过程中,需要注意可能出现的异常,如`JSONException`,并进行...
//字符串json转换成json, 根据情况是用JSONArray或JSONObject @Test public void testJsonStrToJSON(){ JSONArray jsonArray = JSONArray.fromObject( "['json','is','easy']" ); System.out.println( ...
`json-lib`库支持将Java对象转换为JSON字符串,反之亦然,使得Java应用能够方便地与JSON数据交互。 另一个提到的依赖是`ezmorph-1.0.6.jar`,这是一个Java库,主要用于对象的动态转型。在处理JSON时,有时候我们...
- `JsonSerializer`:将Java对象转换为JSON格式的工具类,支持多种Java类型如`Date`、`Map`、`List`等。 - `JsonDeserializer`:反之,将JSON文本解析回Java对象。 3. **JSON解析与生成**: - `NetProvider`、`...
首先调用`setDataFormat2JAVA()`设置日期格式,然后利用`JSONObject.fromObject(jsonString)`将JSON字符串转换为`JSONObject`,最后通过`JSONObject.toBean(jsonObject, clazz)`将JSON对象转换为指定类型的Java对象...
本文将基于`json-lib`库,深入探讨`jsonObject`与`jsonArray`在Java中的应用,以及如何将各种数据类型转换为JSON格式。 #### 关键知识点 ##### 1. JSONObject与JSONArray简介 `JSONObject`和`JSONArray`是`json-...
这个库提供了JSONObject、JSONArray、JSONString等类,使得我们可以方便地将Java对象转换为JSON字符串,或者从JSON字符串反序列化为Java对象。例如,我们可以创建一个JSONObject,添加键值对,然后将其转换为字符串...
在Java开发中,经常需要将Java对象转换为JSON字符串,或者将JSON字符串反序列化为Java对象。`json-lib`是一个流行的Java库,用于处理JSON格式,它提供了多种类型到JSON的转换功能,包括日期和时间。 本文将详细介绍...
它提供了将Java对象转换为JSON字符串以及从JSON字符串反序列化回Java对象的功能。这个库支持多种Java集合和类型,包括Map、List、Set、Date等。JSON Lib也支持Eclipse的动态类加载,使得它可以处理那些在运行时才...