JSONObject.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd'T'HH:mm:ss.mmm";
Productorder tmp1 = JSONObject.parseObject(tmp.toJSONString(), Productorder.class);

  • 方案2:新增date反序列化解析器

主要思路是以fastjson原生的DateDeserializer.class为基础,定制化一个可以解析0000-00-00日期反序列化解析器。
该方式是fastjson函数JSON.parseObject()的一个应用场景,通过定制化ParserConfig参数,达到局部改变JSON解析逻辑的目的。
如下:

package jeromechan.fixbug.fastjson;

import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.deserializer.DateDeserializer;
import java.lang.reflect.Type; /**
* Copyright �0�8 2016 Jerome Chan. All rights reserved.
* An extended DateDeseializer for parsing '0000-00-00'.
*
* @author chenjinlong
* @CreateDate 7/20/16 5:55 PM
*/
public class JCDateDeserializer extends DateDeserializer {
public static final JCDateDeserializer instance = new JCDateDeserializer(); public JCDateDeserializer() {
} protected <T> T cast(DefaultJSONParser parser, Type clazz, Object fieldName, Object val)
{
if (val == null) {
return null;
} else if (val instanceof String) {
String strVal = (String) val;
if (strVal.length() == 0) {
return null;
} else if (strVal.equals("0000-00-00")) {
parser.setDateFormat("yyyy-MM-dd");
}
}
return super.cast(parser, clazz, fieldName, val);
}
}
// 示例执行例子
public class TestDemo {
public static String jsonStr = "{\"dateStr\":\"0000-00-00\"}";
public static void main(String[] args) {
ParserConfig jcParserConfig = new ParserConfig();
jcParserConfig.putDeserializer(Date.class, JCDateDeserializer.instance);
DateBeanDemo resultObject = JSON.parseObject(TestDemo.jsonStr, DateBeanDemo.class, jcParserConfig, JSON.DEFAULT_PARSER_FEATURE);
}
}

假设觉得这种解析办法可以作为整个项目内的全局特性,感兴趣的话可以将定制好的JCDateDeserializer利用spring框架注入到项目容器中。这同样是对于方案2很不错的延伸。

使用FASTJSON做反序列化的时间格式处理的更多相关文章

  1. json的序列化和反序列化支持时间格式转换

    .NET自带的json序列有时间格式问题,为了解决自己写了个json格式的序列化和反序列化 1.引入的命名空间 using System; using System.Collections.Gener ...

  2. Newtonsoft.Json 序列化和反序列化 以及时间格式

    1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg:   A a=new A(); a.Name="Elain ...

  3. Newtonsoft.Json 序列化和反序列化 以及时间格式 2 高级使用

    手机端应用讲究速度快,体验好.刚好手头上的一个项目服务端接口有性能问题,需要进行优化.在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonsoft.Json进行序列化返回数 ...

  4. Newtonsoft.Json 序列化和反序列化 以及时间格式 2

    一.JSON使用JsonPropertyAttribute重命名属性名 1.先创建一个Movie对象,然后在其属性上添加JsonProperty,并指定重命名的名称.注意:属性Name和Directo ...

  5. Newtonsoft.Json 序列化和反序列化 时间格式【转】

    1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg:   A a=new A(); a.Name="Elain ...

  6. Newtonsoft.Json 序列化和反序列化 时间格式

    From : http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeO ...

  7. Newtonsoft.Json 序列化和反序列化 时间格式 [转]

    1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg:   A a=new A(); a.Name="Elain ...

  8. [转]Newtonsoft.Json 序列化和反序列化 时间格式

    本文转自:http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeObj ...

  9. fastjson对于yyyy-MM-dd HH:mm格式的反序列化问题

    原创GrayHJX 发布于2017-03-14 22:56:33 阅读数 6851  收藏 展开 问题:最近在工作中遇到这么一个问题:有个实体类,它有个date类型的属性,当在这个属性加上fastjs ...

随机推荐

  1. [转] 如何选择正确的Hadoop版本

    Gartner:如何选择正确的Hadoop版本 这份报告的全名是<How to Choose the Right Apache Hadoop Distribution>.主要介绍了企业如何 ...

  2. linux中echo命令详解

    linux的echo命令, 在shell编程中极为常用, 在终端下打印变量value的时候也是常常用到的, 因此有必要了解下echo的用法 echo命令的功能是在显示器上显示一段文字,一般起到一个提示 ...

  3. 鼠标样式——css国际组织

    w3c国际标准组织提供的鼠标样式: http://css-cursor.techstream.org/

  4. [日常] PHP设置 include_path 配置选项

    动态设置php.ini中的include_path 配置选项: 两种方式set_include_path($new_include_path)ini_set('include_path',$new_i ...

  5. pch文件配置

    配置.pch文件 刚上手 Xcode6 的人,总会发现之前在 6 之前常常会在“利用名-Prefix.pch”这个文件中来配置我们全局要用到的头文件,但是 xcode6 没有了,人家说,这类东西有时候 ...

  6. Centos7宽带连接

    网上大多教程都是虚拟机上实现宽带连接的,但是实际有差别 装完系统最头疼的就是宽带连接 转自:centos创建宽带连接-EnchanterBlue-ChinaUnix博客 http://blog.chi ...

  7. C#简单工厂模式(学习Learning hard讲解笔记)

    原味地址http://www.cnblogs.com/zhili/p/SimpleFactory.html 简单工厂模式通俗的理解就是用户与工厂的关系,用户用的东西,工厂来生成,责任明确. 就像大神展 ...

  8. Implementation:Dijkstra

    #include <iostream> #include <cstdlib> #include <utility> #include <queue> u ...

  9. ionic开发中遇到的问题

    开发调试过程中,会遇到这样的问题:同源策略请求url禁止请求. 一   网上搜的结果基本是2类: 1. 同源策略请求被阻止, 跨域问题,大家建议添加Access-Control-Allow-Origi ...

  10. iis配置asp.net常见问题解决方案

    很多朋友在用IIS6架网站的时候遇到不少问题,而这些问题有些在过去的IIS5里面就遇到过,有些是新出来的,俺忙活了一下午,做 了很多次试验,结合以前的排错经验,做出了这个总结,希望能给大家帮上忙:) ...