У меня есть класс GamePresenter с коллекцией игроков:Gson: сериализации объект со списком других объектов
public class GamePresenter extends MvpBasePresenter<IMainGameView> {
public ArrayList<BoxPlayer> BoxPlayersColl;
public GamePresenter()
{
TestPlayerInit testPlayerInit=new TestPlayerInit();
BoxPlayersColl=testPlayerInit.BoxPlayersColl;
}
@Override
public String toString() {
return "GamePresenter [data1=" + BoxPlayersColl + "]";
}
}
TestPlayerInit
просто создать все игроки, вставка в BoxPlayerCollection.
Таким образом, каждый BoxPlayer есть несколько полей и карта еще объектов:
public class BoxPlayer {
public Player PlayerObj;
public Integer Id;
public String Description;
// getters,setters...
public Map<Integer,PlayerData> IntToPlayerData;
}
Player
класс:
public int Id;
public String NickName;
// getters setters
public Player(int id,String nickName)
{
Id=id;
NickName=nickName;
}
И PlayerData просто POJO:
public class PlayerData{
public BoxPlayer Player1;
public BoxPlayer Player2;
public VotedBoxPlayer(BoxPlayer player1, BoxPlayer player2)
{
Player1=player1;
Player2=player2;
}
}
Итак, я хочу сериализовать его и сохранить в SharedPrederence.
Я использую Gson
LIB:
public String serializeGamePresenter(GamePresenter gamePresenter)
{
Gson gson=new Gson();
String gamePresenterJSON= gson.toJson(_gamePresenter);
return gamePresenterJSON;
}
Но, когда я использую это ме- замораживание приложений, распределение памяти авария приложений.
Можете ли вы мне помочь, как сериализовать этот объект в JSON?
P.S. когда я пытаюсь сериализовать ArrayList
BoxPlayerColl- он работает.
Я обновляю вопрос: добавьте класс игрока. –
p.s. он не работает, если класс BoxPlayer не содержит Map. Но ArrayList сериализует работы. –