[英]GSON Date Format - Handling null date in the JSON parsing
我正在嘗試將JSON轉換為自定義bean。 但是當JSON中的日期值為null時,我遇到了問題。
有效的JSON字符串,它的轉換沒有任何問題,因為從日期到日期都具有值:
{"title":"1201 Box Title 1","fromdate":"01/02/2017","description":"1201 Box Title 1","todate":"01/26/2017"}
帶有錯誤的JSON字符串:起始日期為空
{"title":"1201 Box Title 1","fromdate":"","description":"1201 Box Title 1","todate":"01/26/2017"}
用於初始化的Java代碼:
Gson testGson = new GsonBuilder().setDateFormat("MM/dd/yyyy").create();
MyTestBean myTestBean = testGson.fromJson(jsonString, MyTestBean.class);
在bean中,fromdate和todate屬性用“日期”數據類型聲明。
錯誤堆棧跟蹤:
Exception in thread "main" com.google.gson.JsonSyntaxException:
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:107)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:82)
at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:35)
at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:59)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93)
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:176)
at com.google.gson.Gson.fromJson(Gson.java:755)
at com.google.gson.Gson.fromJson(Gson.java:721)
at com.google.gson.Gson.fromJson(Gson.java:670)
at com.google.gson.Gson.fromJson(Gson.java:642)
at JSONConverter.main(JSONConverter.java:15)
Caused by: java.text.ParseException: Unparseable date: ""
at java.text.DateFormat.parse(DateFormat.java:366)
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:105)
... 10 more
任何人都可以讓我如何以正確的方式處理此問題。
我嘗試克服此問題的一種方法如下,但想知道GSON自身是否有任何內置選項來處理空日期:
合並評論來自我的問題,並根據這些評論給出答案:
可以很好地解決任何解析問題的JSON字符串是:
{"title":"1201 Box Title 1","fromdate":null,"description":"1201 Box Title 1","todate":"01/26/2017"}
在將JSON構造為傳遞null而不是空字符串的JS中添加所需條件后,解決了該問題。
感謝@ cricket_007指出需要解決的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.