【发布时间】:2020-06-23 02:51:37
【问题描述】:
我想使用 SQLite C API 将 JSON 对象存储在 TEXT 列中。我的 JSON 对象仅包含数字、字符串和布尔值,没有嵌套对象或数组。我的目标是模拟可变数量的列。
考虑一个表:
CREATE TABLE t (i INTEGER, j TEXT);
我目前正在使用这样的准备好的语句:
const char *sql = "INSERT INTO t (j) VALUES (:1);";
sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
const char *buf = build_my_json_object(); // E.g. {"foo":101,"bar":102,"baz":103}
sqlite3_bind_text(stmt, 1, buf);
这可行,但我想知道是否有更好的方法。具体来说,有没有一种方法可以插入 JSON 对象而无需先构建 JSON。
要查询 TEXT 列中的 JSON 对象,我发现使用 json_each() 非常方便,因为这样我就不需要 JSON 解析器了。我缺少一种同样方便的方式来插入 JSON 对象,而无需 JSON 序列化程序。
【问题讨论】: