2016-11-11 9 views
2

私は残りのAPIを使ってアンドロイドのアプリケーションを作成しました。ここで私は残りのAPIのためにgsonを使用し、retrofitを使用してこの残りのAPIとアンドロイドアプリケーションを接続しました。Android:java.text.ParseException:Unparseable date

私のアプリケーションでは、IDを使用して残りのAPIからデータを取得しようとしました。次に、私は次のエラーログを取得しました(私はこのエラーログを使ってアプリケーション名を投稿しませんでした)。

残りのAPIのプロパティを変更する必要がありますか?またはアプリケーションへの変更。現在、私はローカルホスト上の残りのAPIを使ってAndroidアプリケーションをテストしています。

この例外を処理するにはどうすればよいですか?

これは私のエラーログで、

com.google.gson.JsonSyntaxException: 1989-10-11 
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:58) 
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:103) 
at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:196) 
at com.google.gson.Gson.fromJson(Gson.java:810) 
at com.google.gson.Gson.fromJson(Gson.java:775) 
at retrofit.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:36) 
at retrofit.GsonResponseBodyConverter.convert(GsonResponseBodyConverter.java:24) 
at retrofit.OkHttpCall.parseResponse(OkHttpCall.java:148) 
at retrofit.OkHttpCall.access$100(OkHttpCall.java:29) 
at retrofit.OkHttpCall$1.onResponse(OkHttpCall.java:94) 
at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:168) 
at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
at java.lang.Thread.run(Thread.java:841) 
Caused by: java.text.ParseException: Unparseable date: "1989-10-11" (at offset 10) 
at java.text.DateFormat.parse(DateFormat.java:555) 
at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:105) 
... 17 more 

更新

私は私の改造コールに次のコード行を見つけ、私は

Gson gson = new GsonBuilder() 
     .setDateFormat("yyyy-MM-dd'T'HH:mm:ss") 
     .create(); 
、これは例外の理由だと思います

しかし、私はこの日付形式を一般的な日付形式に変換することは考えていません。

現在のところ、この例外をどのように処理するかわかりません。アイデアはありますか?

+1

[GSON - 日付形式]の可能な複製(http://stackoverflow.com/questions/6873020/gson-date-format) – AxelH

+0

@AxelH:リンクのためのおかげで男です。あなたのコメント+1。 – Barrier

答えて

1

これは可変型不一致例外です。モデルクラスとjsonレスポンスの変数の型が同じであることを確認してください。
あなたのケースでは、 "日付"のタイプ(別名かもしれない)の変数をチェックしてください。