最近在学习java对象和json互相转换,发现当java对象里date类型属性值为null时,
会报如下异常:
net.sf.json.JSONException: Error while setting property=date type class java.lang.String
看了下json-lib的源码,才发现Json转Java的时候,调用ezmorph-1.0.6.jar中的DateMorpher类有问题:
如果date的格式错误或者为空(总之就是转换错误)的时候,没有对错误处理。
就在net.sf.ezmorph.object.DateMorpher的这一段
- try{
- return dateParser.parse( strValue.toLowerCase() );
- } catch( ParseException pe ){
- // ignore exception, try the next format
- }
所以我改成如下样子
- try{
- return dateParser.parse( strValue.toLowerCase() );
- }
- catch( ParseException pe ){
- return null;
- }
这样就行了。
测试结果如下:
附件是修改后的ezmorph-1.0.6.jar,下载即可用。
相关推荐
- JSON不支持Java中的所有数据类型,例如`Date`、`BigDecimal`等,转换时需要特别处理。 - 为了处理复杂的JSON结构,可能需要递归调用`JSONObject.fromObject()`和`JSONObject.toBean()`。 总结,JSON与Java数据...
在Spring Boot应用中,数据传输对象(DTO,Data Transfer Object)常常用于前后端的数据交换。当前端发送JSON请求到后端时,日期通常被表示为字符串。然而,后端的实体类中,日期字段通常是`java.util.Date`类型。在...
Gson是Google提供的一个开源库,它可以将Java对象转换为JSON字符串,反之亦然。 ```java import com.google.gson.Gson; import java.util.Date; public class JsonExample { public static void main(String[] ...
JSON采用了键值对(key-value)的形式来存储数据,其中键(key)的取值类型必须是字符串(String),而值(value)的取值类型则可以是字符串(String)、布尔值(Boolean)、数字(Number)、数组(Array)、对象(Object)或者null。...
例如,当从JSON反序列化为Java对象时,如果某个字段在JSON中不存在或值为null,我们可以为其设置默认值,而不是抛出异常。这样可以提高代码的健壮性,减少因数据不完整而导致的错误。 ```java public ...
一旦获取到API的JSON响应,你需要使用JSON解析库,如Jackson或Gson,将JSON数据转化为`HolidayInfo`对象。具体解析过程因JSON结构而异,所以这里没有给出具体实现。在解析完成后,你可以根据`HolidayInfo`对象中的...
### Java、JSON与AJAX在FullCalendar中的应用 #### 一、概述 本文将详细介绍如何在Java后端环境中,利用JSON和AJAX技术与前端框架FullCalendar进行交互,实现动态日历事件展示的功能。该场景涉及到的技术栈主要...
Gson是Google开发的一款强大的Java库,用于在Java对象和JSON数据之间进行映射。它使得Java对象可以轻松地转换成JSON格式,反之亦然。这个库被广泛应用于Android开发中,用来处理JSON数据,例如从网络接口获取数据...
利用Gson库可以轻松地将JSON格式的数据转换为Java对象。 **示例**: ```java Gson gson = new Gson(); User user = gson.fromJson(jsonString, User.class); ``` #### 9. 将List集合按某个字段分组 可以使用Java...
- **序列化**:将Java对象转换为JSON字符串,其中日期和时间字段会按照配置的格式显示。 - **反序列化**:将JSON字符串转换回Java对象,Jackson会尝试根据配置的格式解析日期和时间字段。 5. **DateTimeFormatter...
在Android开发中,我们经常需要将接收到的JSON格式的数据转化为Java对象以便进行处理,GsonFormat正是为此目的而设计的工具。 在Android Studio中,通常我们可以通过在线Marketplace来安装插件,但有时由于网络问题...
`设置响应的MIME类型为JSON,确保浏览器知道接收到的是JSON数据。然后,从请求中获取`uid`参数,根据业务逻辑处理后生成一个包含`result`字段的JSON字符串,并通过`out.print(result);`将其写入响应体。 当`jQuery....
在Java开发中,我们经常需要将后端数据与ECharts图表进行对接,实现动态加载数据的功能。本篇文章将深入探讨如何使用Java实现ECharts动态加载数据的示例。 ### 一、ECharts动态加载机制 ECharts的动态加载数据主要...
在Spring Boot框架中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,广泛应用于Web服务接口的数据传输。本文将深入探讨Spring Boot如何解析JSON数据,包括两种主要的方式:ModelAndView和RESTful ...
接着,我们在`TbMeetingDao.java`接口中定义了一个`insertMeeting`方法,该方法接受一个`TbMeeting`对象作为参数,用于插入一条新的会议记录到数据库中。 然后,我们创建了`MeetingService`接口,定义了一个抽象...
- Number:在JavaScript中对应Short、Integer、Long、Float、Double,在Java和.Net中分别映射为相应类型。 - Boolean:在所有语言中都是一致的,表示布尔值。 - String:在所有语言中都是字符串类型。 - Date:在...
Base64是一种用于在网络上传输二进制数据的编码方式,它将原始的二进制数据转换为ASCII字符,以便于在只支持文本的环境中传输。在图片上传的场景中,Base64编码可以将图片文件转换为字符串形式,然后通过HTTP请求...
##### java的基本数据类型 - 整型:byte、short、int、long - 浮点型:float、double - 字符型:char - 布尔型:boolean ##### 冒泡排序 - **算法思想**:比较相邻元素,将较大的元素往后移动。 ##### 二分查找法 ...
- 上述代码中,我们首先创建一个`URL`对象指向目标文件地址,然后打开连接,并设置`User-Agent`以及`RANGE`头,最后通过`getInputStream()`方法获取输入流。 2. **保存文件到磁盘:** - 一旦获得了从指定位置开始...
Java中常见的时间类型包括`Date`、`Calendar`、`LocalDate`等,可以通过相应API进行转换。例如,可以使用`SimpleDateFormat`类来格式化日期。 #### 十九、阶乘 阶乘是一个正整数n的所有小于及等于n的正整数的乘积...