我正在使用new Gson().fromJson(String, Class<?>)
序列化一些相当复杂的对象,即使我所有的属性看起来都很好,我仍然得到这个堆栈跟踪:
06-09 10:10:58.768: E/AndroidRuntime(27775): FATAL EXCEPTION: main
06-09 10:10:58.768: E/AndroidRuntime(27775): Process: com.my.project, PID: 27775
06-09 10:10:58.768: E/AndroidRuntime(27775): java.lang.IllegalArgumentException: invalid value for field
06-09 10:10:58.768: E/AndroidRuntime(27775): at java.lang.reflect.Field.setField(Native Method)
06-09 10:10:58.768: E/AndroidRuntime(27775): at java.lang.reflect.Field.set(Field.java:585)
06-09 10:10:58.768: E/AndroidRuntime(27775): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:95)
06-09 10:10:58.768: E/AndroidRuntime(27775): at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172)
06-09 10:10:58.768: E/AndroidRuntime(27775): at com.google.gson.Gson.fromJson(Gson.java:803)
06-09 10:10:58.768: E/AndroidRuntime(27775): at com.google.gson.Gson.fromJson(Gson.java:768)
06-09 10:10:58.768: E/AndroidRuntime(27775): at com.google.gson.Gson.fromJson(Gson.java:717)
06-09 10:10:58.768: E/AndroidRuntime(27775): at com.google.gson.Gson.fromJson(Gson.java:689)
... more
有没有办法让Gson告诉我它失败的字段名?
我发现的唯一方法是,在调试模式下,尝试每次删除一个字段的相同操作…这不是一个好的答案,但我找不到更好的方法。