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 String。怎么做?
任何人帮助我。
答案 0 :(得分:0)
如果您已经在使用Gson或计划使用它,那么我建议您将列表对象转换为 Json字符串,然后将其存储在{{1}中在SQLite中键入列。使用相同的库从json字符串重建对象也非常容易。这只是我的一个建议,因为我个人喜欢处理字符串而不是使用字节。
答案 1 :(得分:0)
没有功能构建,特别是在只有1列存储arraylist时。您可以将A类转换为字符串,并按特定字符分隔数据,但这不是正确的方法。
您需要一个新的数据库系统,如下所示:
你的表:
你的专栏|其他一些专栏|和另一列| ArraylistA_id
ArraylistA表:
ArraylistA_id | String1 | String2 | ArraylistB_id
ArraylistB表:
ArraylistB_id | int |双
在此数据库系统中,“ArraylistA id”和“ArraylistB id”列是指向另一个表中其他行的指针。例如,当您的arraylistA存在以下内容时:
Arraylist 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
ArraylistA表:
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
完整故事的要点是你永远不应该只在一列中存储这样的arraylist,在做这样的事情之前你需要一个合适的数据库系统。这是我在火车上的平板电脑上做的,当我到达学校时,我会稍微清理一下。
答案 2 :(得分:0)
你可以尝试这种方法。
public long insertString(String newString)
{
ContentValues newStringValue = new ContentValues();
newStringValue.put(KEY_STRING, newString);
return db.insert(DATABASE_TABLE, null, newStringValue);
}