- 浏览: 599100 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (669)
- oracle (36)
- java (98)
- spring (48)
- UML (2)
- hibernate (10)
- tomcat (7)
- 高性能 (11)
- mysql (25)
- sql (19)
- web (42)
- 数据库设计 (4)
- Nio (6)
- Netty (8)
- Excel (3)
- File (4)
- AOP (1)
- Jetty (1)
- Log4J (4)
- 链表 (1)
- Spring Junit4 (3)
- Autowired Resource (0)
- Jackson (1)
- Javascript (58)
- Spring Cache (2)
- Spring - CXF (2)
- Spring Inject (2)
- 汉字拼音 (3)
- 代理模式 (3)
- Spring事务 (4)
- ActiveMQ (6)
- XML (3)
- Cglib (2)
- Activiti (15)
- 附件问题 (1)
- javaMail (1)
- Thread (19)
- 算法 (6)
- 正则表达式 (3)
- 国际化 (2)
- Json (3)
- EJB (3)
- Struts2 (1)
- Maven (7)
- Mybatis (7)
- Redis (8)
- DWR (1)
- Lucene (2)
- Linux (73)
- 杂谈 (2)
- CSS (13)
- Linux服务篇 (3)
- Kettle (9)
- android (81)
- protocol (2)
- EasyUI (6)
- nginx (2)
- zookeeper (6)
- Hadoop (41)
- cache (7)
- shiro (3)
- HBase (12)
- Hive (8)
- Spark (15)
- Scala (16)
- YARN (3)
- Kafka (5)
- Sqoop (2)
- Pig (3)
- Vue (6)
- sprint boot (19)
- dubbo (2)
- mongodb (2)
最新评论
如果Date.class无法进行转换则使用Timestamp.class
jackson进行转换Date时需要加如下代码
问题场景
在Java里面,会遇到这样的问题:数据库中存在TIMESTAMP类型的数据,这样Bean对象里面就会有Date(java.util.Date)类型参数,我们使用JSONObject将对象序列化的时候,会发现Date属性被分隔成年、月、日、时、分、秒等子对象了,这肯定不符合我们的期望。
解决方案
使用json-lib包提供的JsonConfig可以在处理Java对象和Json互转时过滤属性值,具体的方案如下:
创建日期处理器类
利用SimpleDateFormat将Date类型的数据format一下,该类实现了JsonValueProcessor接口。
处理单个bean
处理beanList
处理map
jackson进行转换Date时需要加如下代码
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date createTime;
问题场景
在Java里面,会遇到这样的问题:数据库中存在TIMESTAMP类型的数据,这样Bean对象里面就会有Date(java.util.Date)类型参数,我们使用JSONObject将对象序列化的时候,会发现Date属性被分隔成年、月、日、时、分、秒等子对象了,这肯定不符合我们的期望。
解决方案
使用json-lib包提供的JsonConfig可以在处理Java对象和Json互转时过滤属性值,具体的方案如下:
创建日期处理器类
利用SimpleDateFormat将Date类型的数据format一下,该类实现了JsonValueProcessor接口。
public class JsonDateValueProcessor implements JsonValueProcessor { private String format = "yyyy-MM-dd HH:mm:ss"; public JsonDateValueProcessor() { super(); } public JsonDateValueProcessor(String format) { // 自己需要的格式 super(); this.format = format; } @Override public Object processArrayValue(Object value, JsonConfig paramJsonConfig) { return process(value); } @Override public Object processObjectValue(String key, Object value, JsonConfig paramJsonConfig) { return process(value); } 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(); } }
处理单个bean
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); // 如果Date.class无法进行转换则使用Timestamp.class JSONObject json = new JSONObject(); json.fromObject(object, jsonConfig)
处理beanList
List<Object> objects = new ArrayList<>(); JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); JSONArray taskArray = JSONArray.fromObject(objects, jsonConfig);
处理map
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(Date.class, new JsonDateValueProcessor()); JSONObject json = new JSONObject(); json.putAll(Map, jsonConfig);
发表评论
文章已被作者锁定,不允许评论。
-
java WeakHashMap学习(key是弱引用)
2018-06-21 09:31 1232在Java集合中有一种特殊的Map类型:WeakHashMap ... -
java HashMap TreeMap(key顺序) LinkedHashMap(插入顺序)学习
2018-06-07 10:27 950java为数据结构中的映射定义了一个接口java.util.M ... -
java RESTful 详解
2018-04-27 11:35 642(1)每一个URI代表一种资源,独一无二; (2)客户端 ... -
java 通过HttpsUrlConnection访问接口数据
2018-04-19 11:25 986server: ssl: key-stor ... -
java 使用多线程的场景总结
2018-04-10 14:35 1703在一个高并发的网站中,多线程是必不可少的。下面先说一下多线程在 ... -
java Enum枚举设置
2018-04-10 10:55 478/** * 数据状态:0:无效,1:有效 **/ ... -
java RestTemplate访问restful服务
2018-03-01 15:02 1621REST的基础知识 当谈论REST时,有一种常见的错误就是将其 ... -
java FYOpenApi实现短信发送
2018-01-02 17:10 11721.配置文件 sms.OpenUrl = http://s ... -
java 用HttpsURLConnection进行传递中文时错误总结
2017-12-07 16:42 654传递中文时需要用Writer而不是OutputStream ... -
java 内存泄漏
2017-11-27 13:51 4941.内存溢出 out of memory ... -
ActiveMQ 三种发送消息方式(同步,异步,单向)
2017-11-17 10:25 2452MQ 发送普通消息有三种实现方式:可靠同步发送、可靠异步发送、 ... -
java Guava ListenableFuture实现线程回调功能
2017-11-14 10:17 1774java Future具有局限性。在实际应用中,当需要下 ... -
java Curator实现分布式锁
2017-09-05 14:39 1089Curator实现分布式锁主要依赖于zookeeper ... -
java Guava工具集学习(强大)
2017-09-05 10:28 432import java.util.Iterator ... -
java CyclicBarrier进行并发编程
2017-08-25 15:44 672CyclicBarrier允许一组线程相互等待达到一个公共的障 ... -
java 几种性能优化的总结
2017-08-23 14:08 3241、使用StringBuilder 一般 ... -
java 使用kyro进行高性能序列化对象和集合
2017-08-23 14:05 2151import java.io.ByteArrayInp ... -
java 对重复电话号码进行排除的优化(排序和前后对比)
2017-08-22 14:14 7901.先对10万数据排序; 2.对比前后两条数据 ; 3.筛 ... -
ActiveMQ 结合Spring进行数据同步
2017-07-19 15:27 583注意事项hibernate配置文件必须设置自动提交否则不能插入 ... -
java 通过反射原理进行复制操作
2017-07-10 14:24 508// 这些实例的对象字段[sCode] String ...
相关推荐
10万次序列化,1万次反序列化,毫秒。 阿里序列化时间 1229 1133 1179 阿里反序列化时间 478 523 466 HZS序列化时间 1089 998 1010 HZS反序列化时间 606 623 635 测试代码如下: { org.hzs.json.JSONObject bjson...
本篇文章将详细介绍如何将`java.util.Date`对象转换为符合特定格式的JSON字符串,从而实现更加标准化的数据交换。 #### 一、问题背景与目标 在Java中,`java.util.Date`类用于表示具体的时间点,它包含了毫秒级别...
10万次序列化,1万次反序列化,毫秒。 阿里序列化时间 1122 1054 1115 阿里反序列化时间 409 423 412 HZS序列化时间 884 864 880 HZS反序列化时间 392 375 394 JAVA7版已经逼近阿里的速度,JAVA8版利用了闭包技术...
这通常用于序列化复杂的对象结构。 ```java MyBean bean = new MyBean(); bean.setId("001"); bean.setName("п"); bean.setDate(new Date()); // ... set other properties ... JSONObject jsonObject = ...
在Java编程中,将数据类型转换为JSON对象是一项常见的任务,特别是在处理Web服务或与前端交互时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。这...
而在返回数据时,则需要将 Java 对象序列化为 JSON 格式发送给前端。 **总结** 本文详细介绍了 JSON 转化为 Java 对象的方法,包括使用第三方库和自定义转换器的方式。此外,还通过示例代码展示了具体的实现细节。...
总结起来,json-lib库为Java开发者提供了一种简单易用的方式来处理JSON数据,包括将Java对象转换为JSON格式,以及从JSON反序列化回Java对象。这对于进行Web服务开发或者需要与JSON格式数据交互的项目来说,是一个...
键是字符串,值可以是各种数据类型,如字符串、数字、布尔值、数组、对象等。例如: ```json { "name": "John", "age": 30, "city": ["New York", "San Francisco"] } ``` 在Java中,处理JSON数据通常需要借助...
4. 支持基本数据类型及其封装类型,Collection类型,Date类型及自定义类型。 5. 支持将JSON数组转换为Java数组或List,支持泛型。 6. 支持将Java的Map转换为JSONObject以及相反的转换。 7. 支持将null值和空值转换为...
为了将`Date`对象正确地序列化和反序列化,需要自定义`JsonValueProcessor`,如`DateJsonValueProcessor`,这个类可以定义日期的转换规则。 5. **遍历JSON对象**:`JSONObject`提供了一个`keys()`方法,返回一个...
其主要结构包括对象(键值对)和数组(有序集合),通过键值对存储数据,数组存储多个值。 2. **Java中的JSON处理** 在Java中,处理JSON通常需要使用第三方库,如`org.json`或`com.google.gson`等。这些库提供了...
2. **序列化与反序列化**:将Java对象序列化为JSON字符串存储,或者从JSON字符串反序列化回Java对象,便于数据持久化或在网络间传递。 3. **API接口开发**:在开发RESTful API时,JSON是最常见的数据交换格式,`...
这个库支持多种Java集合和类型,包括Map、List、Set、Date等。JSON Lib也支持Eclipse的动态类加载,使得它可以处理那些在运行时才知道类名的对象。`-jdk15`表示这个版本兼容Java 1.5,对于较旧的Java环境来说很有用...
在Java编程中,Object、Collection和JSON之间的转换是常见的需求,特别是在数据交换和序列化过程中。这些类型之间的转换有助于在应用程序的不同部分之间传递和存储数据。以下是对这些转换的详细说明,以及涉及到的...
- JSON不支持Java中的所有数据类型,如`Date`、`BigDecimal`等,需要进行适当的转换。 - 在序列化和反序列化过程中,Java对象的属性名和JSON键需要匹配,除非你配置了映射规则。 6. **性能比较** 各个库在性能...
JSON-lib是一个Java库,它提供了将Java对象转换为JSON表示以及从JSON文本反序列化回Java对象的功能。该库的版本是2.3,针对JDK 15进行了优化。"json-lib-2.3-jdk15-sources.jar"文件包含了该库的源代码,这对于...
// 反序列化回Person对象 ``` 此外,还有`org.json.simple`库,其JAR文件名为`json-simple-*.jar`。这个库提供了一个简单的API来处理JSON,适合小型项目或学习使用: ```java import org.json.simple.JSONObject;...
3. `SqlDateProcessor.java`和`UtilDateProcessor.java`: 这两个类与`TimestampProcessor`类似,分别处理`java.sql.Date`和`java.util.Date`类型。由于这些日期类型在JSON中表示方式的不同,自定义处理器可以确保...
通过深入研究`json-lib`的源码,你可以了解JSON与Java对象之间的转换机制,学习如何优化性能,以及如何处理数据序列化和反序列化的异常情况。这对于提升你的Java编程技能,尤其是处理JSON数据的能力大有裨益。同时,...
这个扩展包包含了处理JSON数据所需的所有类和方法,允许开发者在Java应用中方便地序列化和反序列化JSON对象。当你下载并解压`json.jar`文件后,将其导入到你的Java项目中,便能利用其提供的功能来处理JSON数据。 ...