我有这个JSON对象,其中包含"Contact"对象列表及其子对象.我试图用GSON得到ArrayList的Model物体在我的JSON对象,但它返回缺少类型的参数异常.我得到这样的类型:
Type listType = new TypeToken<ArrayList<tModel>>() { }.getType();
并尝试获取这样的列表:
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
ArrayList<Model> = gson.fromJson(jsonString, listType);
Run Code Online (Sandbox Code Playgroud)
在我的proguard中,我保留了这样的对象包:
-keep class .somerepo.contactModel.** { *; }
Run Code Online (Sandbox Code Playgroud)
我见过类似的问题,但没有一个能解决我的问题.
这是堆栈跟踪:
致命异常:AsyncTask#2进程:...,PID:10360 java.lang.RuntimeException:在java.util的android.os.AsyncTask $ 3.done(AsyncTask.java:300)执行doInBackground()时发生错误. concurrent.FutureTask.finishCompletion(FutureTask.java:355)在java.util.concurrent.FutureTask.setException(FutureTask.java:222)在java.util.concurrent.FutureTask.run(FutureTask.java:242)在android.os .AsyncTask $ SerialExecutor $ 1.run(AsyncTask.java:231)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:587) at java.lang.Thread.run(Thread.java:841)引起:java.lang.RuntimeException:缺少类型参数.在com.google.gson.reflect.TypeToken.getSuperclassTypeParameter(的SourceFile:84)在com.google.gson.reflect.TypeToken(的SourceFile:62).在1 semereop.contact.Contact $(的SourceFile:184)在somerepo.contact .Contact.geModelFromJson(的SourceFile:184)
geModelFromJson方法ArrayList<Model>从gson 返回.