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日期的时候出现问题解决date封装成json数据出现的问题
本篇将详细介绍如何在Java中使用`JsonObject`来提取JSON数据中的值,主要通过阿里巴巴的Fastjson库和Jackson库来演示。 首先,我们来看第一种格式的JSON数据: ```json [ { "success": true, "data": [ { ...
`JSONObject`是Java中处理JSON的一种常见工具,它允许我们创建、解析和操作JSON对象。在Java中,`JSONObject`是org.json库的一部分,这个库提供了处理JSON的各种功能。 `JSONObject`类是用于表示JSON对象的Java类。...
键必须是字符串,而值可以是各种JSON数据类型,如字符串、数字、布尔值、数组、其他JsonObject或其他JsonElement。 使用JsonObject,你可以创建、修改和读取JSON数据。例如: 1. 创建JsonObject: ```java Gson ...
### JSON在Java中的应用:解析`jsonObject`与`jsonArray` #### 概述 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。在...
2. **添加键值对**:使用`put()`方法向JsonObject中添加键值对,键必须是字符串,值可以是各种类型,包括基本类型、字符串、其他JsonObject或JsonArray。 ```java jsonObject.put("key", "value"); ``` 3. **获取值...
这个“jsonobject.zip”压缩包很可能包含了使用JSONObject所需的全部依赖库,确保你能在Java项目中正确地导入和使用JSONObject类。 为了在Java中使用JSONObject,首先你需要了解JSON的基本结构。JSON数据由键值对...
`org.json.JSONObject`是Java编程语言中用于处理JSON(JavaScript Object Notation)数据的一个轻量级库。这个库由Mozilla Public License提供,广泛应用于需要在Java应用中进行JSON解析、生成和操作的场景。JSON是...
在Java中,`JSONObject`是JSON-P(Java API for JSON Processing)规范的一个实现,由org.json库提供,它允许开发者将Java对象转换为JSON格式,以及将JSON数据转换回Java对象。 `JSONObject`类是处理JSON对象的核心...
当涉及到JSON在Java中的处理时,`JSONObject`类扮演着至关重要的角色。这个类主要由`org.json`库提供,它允许我们以键值对的形式操作JSON对象。 `JSONObject`是`org.json`库中的一个核心类,它提供了创建、读取和...
在Java中,处理JSON数据时,一个常用的库是`JSONObject`,它来自于org.json包。这个`JAVA JSONObject Jar包`包含了处理JSON对象所需的类和方法。 JSONObject是org.json库中的核心类,它允许我们创建、读取和修改...
- `new JSONObject(Map map)` 从Map对象中创建一个JSONObject,其中Map的键是字符串,值可以是基本类型或可转化为JSON的对象。 - `JSONObject(string jsonText)` 从JSON格式的字符串创建JSONObject。 2. **添加...
在Java开发中,JSON(JavaScript Object Notation)是一种轻量级的数据交换...这样,你就可以在代码中调用如`JSONArray.parseArray(String json)`、`JSONObject.fromObject(Object obj)`等方法,轻松地进行JSON操作了。
在Java编程环境中, JsonObject是Java JSON处理库Gson的一个关键组件。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务和应用程序之间的数据传输。Gson库由Google开发,允许我们将...
读取`JSONObject`中的数据,我们可以通过键来获取对应的值: 1. `getString("key")`:获取字符串值。 2. `getInt("key")` / `getLong("key")`:获取整数或长整数值。 3. `getBoolean("key")`:获取布尔值。 4. `...
JsonObject是.NET开发中处理JSON数据的一个重要工具,尤其在C#环境中,它提供了方便的方法将JSON格式的数据转换为C#对象,以及将C#对象转换为JSON字符串。JSON(JavaScript Object Notation)是一种轻量级的数据交换...