【发布时间】:2016-04-09 16:28:47
【问题描述】:
我有一个包含玩家集合的 GamePresenter 类:
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 都有一些字段和另一个对象的 Map:
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 中。
我使用Gsonlib:
public String serializeGamePresenter(GamePresenter gamePresenter)
{
Gson gson=new Gson();
String gamePresenterJSON= gson.toJson(_gamePresenter);
return gamePresenterJSON;
}
但是,当我使用这种方法时——应用程序冻结,内存分配崩溃应用程序。
您能帮我吗,如何将此对象序列化为 JSON?
附:当我尝试序列化ArrayList BoxPlayerCol- 它可以工作。
【问题讨论】:
标签: java json serialization android gson