如何导出含JSON列的SQLite表且避免JSON内容二次转义
SQLite JSON列导出避免二次转义的最简方案
问题原因
SQLite 原生JSON导出模式会将TEXT类型的内容作为普通字符串处理,即使存储的内容是合法JSON结构,也会自动添加引号和转义符,导致二次转义问题。
解决方法
查询时使用json()函数包裹JSON类型的列即可,无需手动提取内部字段,适配任意结构的JSON内容:
sqlite> .mode json sqlite> SELECT id, json(j) AS j FROM t;
输出结果
[{"id":1,"j":{"name": "bob"}}, {"id":2,"j":{"name": "alice", "age":20, "hobbies":[ "a", "b", "c"] }}]
原理说明
json()函数会将输入的合法JSON字符串解析为SQLite内部识别的JSON类型值,在JSON模式下导出时,该类值会直接作为JSON结构输出,不会被当作普通字符串做转义处理。
内容的提问来源于stack exchange,提问作者jgran
相关产品推荐
相关产品推荐

