私は選手のコレクションを持つクラス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にあります。
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;
}
ので、各BoxPlayerは、いくつかのフィールドと別のオブジェクトの地図を持っています
}
私はそれをシリアライズしてSharedPrederenceに保存したいと思います。
public String serializeGamePresenter(GamePresenter gamePresenter)
{
Gson gson=new Gson();
String gamePresenterJSON= gson.toJson(_gamePresenter);
return gamePresenterJSON;
}
しかし、私はこのMETHOD-アプリケーションのフリーズを使用し、メモリ割り当てのクラッシュアプリケーション:
私はGson
LIBを使用しています。
このオブジェクトをJSONにシリアル化する方法を教えてください。
P.S.私がシリアル化しようとするとArrayList
BoxPlayerColl-それが動作します。
質問を更新します。Playerクラスを追加します。 –
p.s. BoxPlayerクラスにMapが含まれていない場合は機能しません。しかし、ArrayList はシリアル化されています。 –