Gson を使用してオブジェクト データを格納する Android アプリケーションを作成しています。私が使用しているタイプ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()
、 myGoal
または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に情報を保存できるように、循環参照を使用して回避する方法を知っている人はいますか?