Java Android:是否保存/加载gson.JsonObjects的ArrayList?

Java Android:是否保存/加载gson.JsonObjects的ArrayList?,java,android,serialization,Java,Android,Serialization,我有以下Cart类和mcartitem数组列表,其中包含gson.JsonObjects public class Cart { private ArrayList<JsonObject> mCartItems; private Context mContext; ... } // Save cart singleton to disk public void saveToDisk(){ try { FileO

我有以下
Cart
类和
mcartitem
数组列表,其中包含gson.JsonObjects

public class Cart {
    private ArrayList<JsonObject> mCartItems;
    private Context mContext;
    ...
}

// Save cart singleton to disk
    public void saveToDisk(){
        try {
            FileOutputStream fos = mContext.openFileOutput(FILE_NAME, Context.MODE_PRIVATE);
            ObjectOutputStream os = new ObjectOutputStream(fos);
            os.writeObject(mCartItems);
            os.close();
            Log.v(LOG_TAG, "Saving cart to disk");

        } catch (IOException io){
            mContext.deleteFile(FILE_NAME);
            Log.v(LOG_TAG, "Error saving cart to disk", io);
        }
公共类购物车{
私有ArrayList mCartItems;
私有上下文;
...
}
//将购物车单例保存到磁盘
public void saveToDisk(){
试一试{
FileOutputStream fos=mContext.openFileOutput(文件名,Context.MODE\u PRIVATE);
ObjectOutputStream os=新的ObjectOutputStream(fos);
os.writeObject(mCartItems);
os.close();
Log.v(Log_标签,“将购物车保存到磁盘”);
}捕获(io异常){
mContext.deleteFile(文件名);
Log.v(日志标签,“将购物车保存到磁盘时出错”,io);
}
当我保存cartItems时,我得到一个错误
java.io.NotSerializableException:com.google.gson.JsonObject
。我如何在没有子类化JsonObject的情况下将购物车项目列表存储在文件中?

根据,
toString()
JsonObject上的
为您提供一个
字符串
,该字符串是对象上的有效Json表示形式

字符串
是可序列化的,当您从磁盘读回它时,您可以将其解析回
JsonObject


将转换步骤添加到
saveToDisk()
(以及任何
readFromDisk()
方法)中,将
ArrayList
更改为
ArrayList
,然后再将其更改回
在JsonObject上,将对其进行序列化,然后您也可以使用相同的字符串对其进行反序列化。例如,您可以执行以下操作-

通过在初始列表的对象上调用toString将列表转换为List,然后将新列表保存到磁盘

另外,当从磁盘读取时,需要将列表转换为列表,这可以通过调用提供字符串的gsom.fromJson方法轻松完成

还有其他有效的方法可以做到这一点,您可以找到。我想强调的是,JsonObject是易于序列化的