SQLite数据保存数组list对象《android初开发探索(四)》

工具:

Gson2.7

准备:

在build.gradle中的dependencies下添加依赖项

implementation files('libs/gson-2.7.jar')

将gson2.7.jar添加到app - libs目录下
在这里插入图片描述

使用:

将对象转为json字符串,object为想要转的对象
new Gson().toJson(object);
将json字符串转回为指定对象,以下为转list
Gson gson = new Gson();
List<String> list_path = gson.fromJson('此处是String字符串',new TypeToken<List<String>>(){}.getType());
一般形式为以下,其中object为想要转的对象
Gson gson = new Gson();
Object object = gson.fromJson(filename,new TypeToken<obeject>(){}.getType());
之后就可以按照保存字符串的方式将转化为json字符串的数组保存进SQLite数据库中了
  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android SQLite3 中存储 `List<Long>` 可以使用 BLOB 类型的列,BLOB 类型可以存储任意二进制数据,包括 `List<Long>`。 以下是一个示例代码,展示如何将 `List<Long>` 存储到 SQLite3 数据库中,并且读取 `List<Long>`: ```java // 假设你已经创建了一个名为 "mytable" 的表,其中包含一个名为 "mylist" 的 BLOB 类型列 // 存储 List<Long> List<Long> list = new ArrayList<>(); list.add(1L); list.add(2L); list.add(3L); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream out = new ObjectOutputStream(bos); out.writeObject(list); byte[] bytes = bos.toByteArray(); ContentValues values = new ContentValues(); values.put("mylist", bytes); long result = db.insert("mytable", null, values); // 读取 List<Long> Cursor cursor = db.query("mytable", new String[]{"mylist"}, null, null, null, null, null); if (cursor.moveToFirst()) { byte[] bytes = cursor.getBlob(cursor.getColumnIndex("mylist")); ByteArrayInputStream bis = new ByteArrayInputStream(bytes); ObjectInputStream in = new ObjectInputStream(bis); List<Long> resultList = (List<Long>) in.readObject(); // resultList 就是读取到的 List<Long> } ``` 在这个示例中,我们使用了 Java 的对象序列化机制将 `List<Long>` 转换为字节数组,然后将字节数组插入到数据库中。在读取 `List<Long>` 时,我们可以使用类似的方式,将 BLOB 类型的列转换为字节数组,然后再将字节数组转换为 `List<Long>`。注意,读取 `List<Long>` 时应该使用 `getBlob` 方法获取字节数组,而不是 `getInt` 方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值