Fastjson是一個Java語言編寫的高性能JSON處理器,可以將Java對象轉換成JSON字符串,也可以將JSON字符串轉換成Java對象。
在使用fastjson將JSON字符串轉換成Java對象時,可能會遇到日期格式問題。下面我們來看一下如何解決。
首先,我們需要知道使用fastjson時默認的日期格式為“yyyy-MM-dd HH:mm:ss”,如果我們要使用其他日期格式,可以在轉換前設置全局默認的日期格式,代碼如下:
JSON.DEFFAULT_DATE_FORMAT = "yyyy-MM-dd";
設置全局默認的日期格式后,我們就可以將JSON字符串轉換成Java對象了。如果JSON字符串中的日期格式和默認的日期格式不一致,我們可以使用注解來指定日期格式。
比如,我們要將以下JSON字符串轉成Java對象:
{ "name": "張三", "age": 18, "birthday": "2021/08/01" }
我們可以定義一個對應的Java對象:
public class Person { private String name; private int age; @JSONField(format="yyyy/MM/dd") private Date birthday; // getter和setter方法 }
在Java對象的birthday字段上添加@JSONField注解,并指定日期格式為“yyyy/MM/dd”。然后,我們就可以將JSON字符串轉換成Person對象了:
String jsonStr = "{\"name\":\"張三\",\"age\":18,\"birthday\":\"2021/08/01\"}"; Person person = JSON.parseObject(jsonStr, Person.class); System.out.println(person.getBirthday());
輸出結果為:
Sun Aug 01 00:00:00 CST 2021
我們可以看到,fastjson已經將JSON字符串中的日期格式轉換成了指定的日期格式,并且成功地將其轉換成了Java對象。