问题标签 [sqlite-json1]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sqlite - 有什么办法可以在路径 Json1 Sqlite 中转义点
似乎如果我有钥匙test1.test2
,就无法逃脱这个点来按原样使用这个钥匙。
表达:
会导致
json - 来自 sqlite3 的 JSON 字段
我在 sqlite3 集合中有一个 json 字段。我的架构看起来像:
我了解 go-sqlite 接口不明确支持 json 数据类型。但是,我的 json 非常简单,因为所有字段都是 json 数组,例如;
所以完整的记录可能是:
使用包:
我能够提取我的 json 字段
也就是说,似乎 sqlite3 json 被存储在一个 unicode 字符串(?)中作为一系列......字节?......我可以使用 String 模块转换为字符串。我还对“+”连接操作感兴趣,所以我可以为下游的另一个应用程序制作一个查询+字符串+查找+东西。
但是,我真的很想将这一切都捆绑在 JSON 中,并利用 JSON 解组/解析而不是我的临时自定义打印。当我尝试:
它打印一个真正的整数数组。如何在启用 json 的类型定义中嵌入 strings.Join(sounds []uint8) 声明 + 函数转换组合?
此外,我不清楚如何在 json 为 null [] 或 true NULL 的情况下使用 []uint8 字符串,并进一步使其对这些具有鲁棒性。
一些参考:
php - 如何在 SQLite3 中启用扩展加载?
我想使用 SQLite3 的JSON1扩展,但是当我执行以下操作时;
我得到了错误;
文档说,出于安全原因,默认情况下禁用扩展加载,但可以通过事先调用 C 接口函数sqlite3_enable_load_extension()来启用。
如何调用该函数,或者是否有另一种方法可以从 PHP 加载 SQLite 扩展?
PS。json1.dll
我使用 MinGW+Msys编译;
sqlite - 带有 JSON1 的 Ubuntu 16.04 上的 SQLite
是否有使用 JSON1 扩展编译的 Linux/Ubuntu 的 SQLite 发行版。SQLite JSON1 页面上的说明仅解释了如何在编译后加载扩展 - 我想避免一个题外话。
sqlite - 使用带有 SQLite/json1 扩展(追加、尾部)的数组
sqlite3 的 json1 扩展允许查询和操作 JSON 值(存储的 TEXT 字段)。我想将一个新元素附加到驻留在某个 JSON 值(在 SQLite 数据库中)内的 JSON 数组中。不幸的是,在使用动态大小的数组(长度未知)时,对 JSON 数组的支持似乎不是最佳的。
我有一个存储 JSON 值的简单表。
该表中将有 JSON 值,其中包含一个作为根节点的 JSON 数组,例如:
要附加到路径“$”处的数组(为简单起见),我可以发出以下查询:
这可行,但似乎相当可怕;我首先json_extract
是数组,然后计算它的长度。然后将该长度连接成一个新的 JSON 路径表达式,然后将其反馈到json_insert
以找到正确的位置。获取最后一个元素可以通过相同的方式完成:
这似乎很麻烦。我希望有类似$[-1]
路径的东西,但这似乎不受支持。这可以在 SQLite 中以更优雅的方式解决吗?
json - Sqlite:将新元素附加到现有数组
来自 sqlite3 文档
但是如何将新元素附加到数组中?
json - 使用 JSON1 在 SQLite 中更新 JSON
SQLite JSON1 扩展有一些非常简洁的功能。但是,我无法弄清楚如何更新或插入单个 JSON 属性值。
这是一个例子
我正在使用此表来存储关键字搜索并记录在对象中发起搜索的位置locs
。此数据库表中的示例条目如下所示
这里的位置对象属性是存储在别处的实际位置的索引。
现在想象以下场景
stackoverflow
从位置索引“2”开始搜索。在这种情况下,我只想增加该索引处的值,以便在操作后读取相应的行id:1,lang:1,kwd:'stackoverflow',locs:'{"1":1,"2": 2 ,"5":1}'
从以前未知的位置索引“7”开始搜索,
stackoverflow
在这种情况下,更新后的相应行必须读取id:1,lang:1,kwd:'stackoverflow',locs:'{"1":1,"2":1,"5":1, "7":1 }'
我不清楚这实际上是否可以做到。我尝试了一些类似的东西
这给出了错误消息error near json_set
。对于任何能够告诉我如何/是否应该/可以完成的人,我将非常感激。
android - Android SQLite 在带有转义双引号的 TEXT 列中插入 JSON
我在一个 Android 应用程序中使用 SQLite,其中存储了一个记录用户情绪的表。表架构如下所示
与 Postgres 不同,SQLite 没有专用的jsonb
存储类型。去引用
向后兼容性限制意味着 SQLite 只能存储 NULL、整数、浮点数、文本和 BLOB 值。无法添加第六个“JSON”类型。
在 SQLite 命令行处理器上,我可以使用一个简单的 INSERT 语句来填充这个表,比如这个
因为它接受字符串的单引号和双引号。
为了在我的 Hybrid Android 应用程序中完成相同的操作,我执行以下操作
它返回诸如{"P4":2}
等之类的字符串。我的下一步如下
哪个有效。但是,在检查存储的值后,我发现实际上输入的是
除非我在这里误解了某些东西,否则底层ContentValues.put
或SQLiteDatabase.insert
实现已经自行转义了引用的字符串。也许这是意料之中的,因为沿着这SQLiteDatabase.insert
条路线走的好处ContentValues
是可以防止 SQL 注入攻击。然而,在目前的情况下,它是一种障碍,而不是一种帮助。
除了通过执行原始 SQL 之外,execSQL
还有另一种方法可以将 JSON 导入 SQLite 数据库表吗?
我应该补充一点,只需用单引号替换双引号
将无法工作,因为随后尝试从表中提取 JSON
将导致SQLite JSON1 扩展发出格式错误的JSON错误。
sql - 使用 json_extract 在 JSON 数组中的所有对象中查找
json_extract 如何用于查看数组中的所有对象?如果您知道密钥,它会起作用,但我想查看每个对象并找到匹配的对象。
如何让它工作?