我正在构建一个 Android 应用程序,其中我使用 Gson 来存储对象数据。我有一个Goal
我正在使用的类型,它具有以下属性:
private long id;
private String goalName;
private boolean isMainGoal;
private Goal upperLevelGoal;
private Goal mainGoal;
private ArrayList<Goal> subGoals;
private int goalLevel;
private String textViewSubGoalLine;
private ArrayList<UrlComplex> sitesWithinGoal;
使用 Gson 的toJson()
方法时,我得到一个StackOverflowError
. 根据我的阅读,这是因为 Gson 无法处理循环引用——也就是说,它无法toJson()
在我的Goal
或ArrayList<Goal>
属性上执行。
我知道我可以以某种方式使用 TypeToken 来解决这个问题。(gson.toJson() 抛出 StackOverflowError)但是,我已经阅读了手册(http://google-gson.googlecode.com/svn/tags/1.1.1/docs/javadocs/com/google/gson/reflect/TypeToken .html),我真的不明白它是如何用来这样做的。
有谁知道使用循环引用的方法,以便我可以通过 Gson 将信息存储在 JSON 中?