Я создаю приложение для Android, в котором я использую Gson для хранения данных Object. У меня есть тип Goal
, который я использую, которая обладает следующими свойствами:Как обойти круговые ссылки при использовании Gson?
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;
При использовании метода toJson()
Gson, я получить StackOverflowError
. Из того, что я прочитал, это потому, что Gson не может обрабатывать круговые ссылки, то есть он не может выполнить toJson()
на моих Goal
или ArrayList<Goal>
свойствах.
Я понимаю, что могу как-то использовать TypeToken, чтобы обойти эту проблему. (gson.toJson() throws StackOverflowError) Однако, я прочитал руководство (http://google-gson.googlecode.com/svn/tags/1.1.1/docs/javadocs/com/google/gson/reflect/TypeToken.html), и я действительно не понимаю, как его можно использовать для этого.
Кто-нибудь знает способ обойти круговые ссылки, чтобы я мог хранить информацию в JSON через Gson?