加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

SQLite使用JSON扩展

发布时间:2020-12-12 19:24:09 所属栏目:百科 来源:网络整理
导读:一、介绍 SQLite3.9.0 之后的版本,添加了 JSON 扩展。在表中可以保存 JSON 类型。实际上 SQLite 将 JSON 类型的字段作为文本字段对待。但可对定义为 JSON 的字段,调用特点的函数,来实现 JSON 内容的增删改查。不用再自己用程序实现相似的增删改查操作。 S

一、介绍

SQLite3.9.0之后的版本,添加了JSON扩展。在表中可以保存JSON类型。实际上SQLiteJSON类型的字段作为文本字段对待。但可对定义为JSON的字段,调用特点的函数,来实现JSON内容的增删改查。不用再自己用程序实现相似的增删改查操作。

SQLiteJSON扩展,定义在json1.c中。此文件位于源码路径下的ext/misc中。

SQLiteJSON参考了MySQL7.0中的JSON接口。可参数此文章学习使用SQLiteJSON使用方法。

二、编译及加载JSON插件方法

1、先编译sqlite3.dll。加入参数SQLITE_ENABLE_JSON1=1。开启JSON扩展。

nmake /f Makefile.msc sqlite3.dll TOP=..sqlite-src-3.14.1 DEBUG=1 SQLITE_ENABLE_JSON1=1

2、编译json扩展

编译json1.c文件。注意编译时加入SQLITE_ENABLE_JSON1预编译定义。假设编出的dll名为json_ext.dll

3、加载json插件

从命令行运行Sqlite3.exe命令行交互工具。执行以下命令加载插件:

.load ./json_ext.dll sqlite3_json_init

4、测试JSON插件加载是否成功

执行SQLselect json_type('["a","b",1]');

输出结果若为array,则加载JSON插件成功。

三、实例

实例1

sqlite> create table facts(sentenc JSON);

sqlite> insert into facts values(json_object("mascot","Our mascot is a dolphin name sakila"));

sqlite> SELECT sentenc"$.mascot" FROM facts;

查询结果:

{"mascot":"Our mascot is a dolphin name sakila"}

实例2

sqlite> create table userj(userInfo JSON);

sqlite> insert into userj values('{"id":"19","name":"Lida"}');

sqlite> insert into userj values('{"id":"20","name":"james"}');

sqlite> select * from userj;

查询结果:

{"id":"19","name":"Lida"}

{"id":"20","name":"james"}

sqlite> SELECT json_extract(userInfo,"$.name") FROM userj;

查询结果:

Lida

james

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读