0
class A{
String str1="";
String str2="";
ArrayList<B> barr=new ArrayList<B>();

}


class B{
int a;
double d;
}


**ArrayList<A> aArr=new ArrayList<A>();**

我想将 aArr 列表存储在 sqlite db 的列中并检索它。

我想我可以将它转换为 JSON 字符串。怎么做?

任何人帮帮我。

4

3 回答 3

0

如果您已经在使用Gson或计划使用它,那么我建议您将列表对象转换为Json 字符串,然后将其存储Text在 SQLite 中的类型列中。使用相同的库从 json 字符串重构您的对象也非常容易。这只是我的一个建议,因为我个人喜欢处理字符串而不是玩字节。

于 2012-06-13T06:59:49.983 回答
0

对此没有内置功能,尤其是在仅将 arraylist 存储在 1 列中时。您可以将 A 类转换为字符串,并按特定字符分隔数据,但这不是正确的方法。

您需要一个新的数据库系统,如下所示:

你的桌子:

您的专栏 | 其他一些专栏 | 和另一个专栏 | ArraylistA_id

Arraylist一张表:

ArraylistA_id | 字符串1 | 字符串2 | ArraylistB_id

ArraylistB 表:

ArraylistB_id | 整数 | 双倍的

在这个数据库系统中,列“ArraylistA id”和“ArraylistB id”是指向另一个表中其他行的指针。因此,例如,当您的 arraylistA 存在于以下情况时:

数组列表 A{

{"TEST", "TEST", ArrayListB{{1,1.0}, {2, 2.0}, {3, 3.0}}}

{"HELLO", "HELLO", ArrayListB{{9,9.0}, {8, 8.0}, {7, 7.0}}}

};

比 sql 数据库中的记录如下:

你的桌子:

Your Column | Some other Column | and another Column | ArraylistA_id

                                                           1

Arraylist一张表:

ArraylistA_id | String1 | String2 | ArraylistB_id

   1           TEST      TEST          1

   2           HELLO     HELLO         2

ArraylistB 表:

ArraylistB_id | int | double

  1            1      1.0

  1            2      2.0

  1            3      3.0

  2            9      9.0

  2            8      8.0

  2            7      7.0

完整故事的要点是,您永远不应该将这样的数组列表存储在一列中,在执行此类操作之前,您需要一个适当的数据库系统。这是我在火车上的平板电脑上做的,当我到学校时,我会清理一下。

于 2012-06-13T07:09:08.253 回答
0

你可以试试这个方法。

public long insertString(String newString) 
  {
    ContentValues newStringValue = new ContentValues();

    newStringValue.put(KEY_STRING, newString);

    return db.insert(DATABASE_TABLE, null, newStringValue);
  }
于 2013-03-11T06:26:23.863 回答