【发布时间】:2014-10-04 19:27:12
【问题描述】:
我有一个 ArrayList 和一个 ArrayList,gson 在检索自定义对象 ArrayList 时工作得非常好,但在检索 LinearLayout ArrayList 时会导致 stackOverflow 异常。
代码:
public Semester(JSONObject json) throws JSONException {
coursesAsString = json.getString(JSON_COURSES);
Type coursesType = new TypeToken<ArrayList<Course>>(){}.
courses = gson.fromJson(coursesAsString, // <--- THIS PART WORKS FINE
courseLayoutArrayAsString = json.getString(JSON_COURSELAYOUTARRAY);
Type courseLayoutArrayType = new TypeToken<ArrayList<LinearLayout>>(){}.getType();
courseLayoutArray = gson.fromJson(courseLayoutArrayAsString, courseLayoutArrayType); // <---- this line
//is where the problem lies. For some reason
//"gson.fromJson(courseLayoutArrayAsString, courseLayoutArrayType)" causes a stackOverflow exception.
}
这是一个例外:
java.lang.StackOverflowError
at com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:375)
at com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:380)
at com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:375)
at com.google.gson.internal.$Gson$Types.resolve($Gson$Types.java:380)
而且这种情况持续了很长时间。
【问题讨论】:
-
您是否向
Gson注册了任何自定义类型处理程序?
标签: java android json arraylist gson