2017-01-12 5 views
0

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のいずれかの作り付けのオプションがあるかどうかを知りたいと思った:

  1. は、Bean内からと日付を宣言します。文字列データ型として
  2. は、コメントを統合
+3

あなたは空の文字列を持っています。ヌルではありません –

+0

私たちがnullを渡すと、GSONはこれを処理しますか? – Vinay

+0

おそらくそうではありません。 ParseExceptionの代わりにNullPointerExceptionが発生する可能性があります。 –

答えて

0

は私の質問から来たこのBeanを使用してコードで使用される日付を返すから答えを配置する前に解析を行います豆のカスタムgetterメソッドを書きますそれらのコメント:

任意の解析問題外でうまく働いJSON文字列は次のとおりです。nullを渡すJSONを構築する代わりに、空の文字列されてJSに必要な条件を追加した後

{"title":"1201 Box Title 1","fromdate":null,"description":"1201 Box Title 1","todate":"01/26/2017"} 

は、問題を修正しました。

解決しなければならない問題を指摘してくれてありがとう@ cricket_007。

関連する問題