JSONをカスタムBeanに変換しようとしています。しかし、JSONで日付の値がnullの場合に問題に直面しています。日からとの両方が値を持っているようGSON日付書式 - 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);
fromdate属性とtodate属性はdec
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
誰が正しい方法でこの問題に対処する方法を私に聞かせてもらえ:「日付」データ型
エラースタックトレースとlared。私はこの問題を克服しようとしています
一つの方法は以下の通りですが、itsselfがnull日付を処理するGSONのいずれかの作り付けのオプションがあるかどうかを知りたいと思った:
- は、Bean内からと日付を宣言します。文字列データ型として
- は、コメントを統合
あなたは空の文字列を持っています。ヌルではありません –
私たちがnullを渡すと、GSONはこれを処理しますか? – Vinay
おそらくそうではありません。 ParseExceptionの代わりにNullPointerExceptionが発生する可能性があります。 –