使用 SQLite API 将 API 输出 (JSON) 插入 SQLite

Posted

技术标签:

【中文标题】使用 SQLite API 将 API 输出 (JSON) 插入 SQLite【英文标题】:Inset API output (JSON) into SQLite using SQLite API 【发布时间】:2018-03-19 08:54:24 【问题描述】:

我正在使用 Firebase 来存储我的数据。我有一个 JSON 格式的 Firebase 输出-->

https://fundeasy-b6187.firebaseio.com/Test.json

"iID":15,"vValue":"K"

我想使用 SQLite 命令来选择它。 SQLite 具有 json_extract 和 json_set 功能。这些可以用来直接从我的 JSON 输出中选择数据吗?

【问题讨论】:

你要选择???什么? 您好,我的 JSON 输出 (fundeasy-b6187.firebaseio.com/Test.json) 有两个参数 iID 和 vValue。他们的价值观每天都会改变。我想使用 SQLite 查询从 JSON 中选择当前的 iID 和 vValue 参数。 为什么不直接使用 Java 默认类中的 JSON 本身,称为 JSONObject、JSONarray 等。为什么选择 sqlite? 我正在使用第三方服务来开发我的 android 应用程序。我无法访问这里的大部分代码。我只能用自定义代码定义 SQLite API。因此,我想知道是否有办法在 SQLite 中实现它。 我不知道sqlite中是否有json扩展,所以我去查看文档,我已经给你写了一个答案!滚动查看! 【参考方案1】:

根据JSON 上的官方SQLite 文档,您就是这样做的。从JSON Object 中提取某个值的方法,对于您的情况,json 对象是:

"iID":15,"vValue":"K"

首先选择时,您需要知道 json 对象的keys 以便获取值。对于您的情况,键是iID,另一个键是vValue。请记住,它们区分大小写。

要从您的 json 对象中获取值,我们使用名为 json_extract 的 sqlite 函数,其语法如下:

json_extract('your json object here', '$.key_of_the_value')

因此对于您的情况,它将是:

对于 iID

json_extract('your_json_object_here', '$.iID')

对于 vValue

json_extract('your_json_object_here', '$.vValue')

因此,总结一下您的情况,解决方案将是:

SELECT JSON_EXTRACT('your_json_object_here', '$.iID');
SELECT JSON_EXTRACT('your_json_object_here', '$.vValue');

有关 sqlite 的提取函数和 json 扩展的更多信息,例如提取 json 数组或 json 中的项目 数组check this link。快乐编码!

【讨论】:

非常感谢您的深入解释。这真的很有帮助。我会尝试解决方案。 给它一个赞成票并接受它作为你在左侧问题的答案! 您好,我已接受它作为我问题的答案。我无法投票,因为我没有足够的声望点。非常感谢您的帮助:)【参考方案2】:

是的,他们可以。 假设你需要提取iID你可以使用下面的代码

' SELECT JSON_EXTRACT('"iID":15,"vValue":"K"', '你的变量');'

查看以下链接了解更多 customization

【讨论】:

您好 Vidya,非常感谢您的回答。在这种情况下,我的 JSON 输出每天都会发生变化,即fundeasy-b6187.firebaseio.com/Test.json 将具有不同的 iID 和 vValue 值。如何定义查询,以便从我的 JSON 输出 (fundeasy-b6187.firebaseio.com/Test.json) 中获取 iID 和 vValue 的变量值

以上是关于使用 SQLite API 将 API 输出 (JSON) 插入 SQLite的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python sqlite3 API 的表、数据库模式、转储等列表

将数据从列表视图(从 Rest Api 生成)传递到另一个活动并将其保存到 SQLite 数据库中

如何从API加载图像并将其保存到sqlite数据库中?

sqlite3接口API函数备注

sqlite3接口API函数备注

Android API 28 使用啥 SQLite 版本,历史上何时更新? [复制]