能否通过SQLite输出以ID为整数键的JSON对象?
可以用SQLite实现这个需求
核心是利用SQLite内置的JSON聚合函数构造目标格式的JSON对象,具体方法如下:
用SQL直接生成目标JSON
执行这条查询就能得到以id为键、对应包含name和date的对象为值的JSON:
SELECT json_group_object( id, json_object('name', name, 'date', date) ) AS target_json FROM t;
json_object负责把每行的name和date打包成子对象,json_group_object则将所有行的id和对应的子对象聚合为一个大的JSON对象。
命令行下输出纯净结果
如果是在SQLite命令行工具里操作,想要避免多余的表头和格式干扰,可搭配以下命令:
sqlite3 你的数据库文件名.db <<EOF .mode none SELECT json_group_object(id, json_object('name', name, 'date', date)) FROM t; EOF
.mode none会关闭默认的表头和分隔符输出,直接返回纯JSON字符串。
示例效果
假设表t的数据是:
| id | name | date |
|---|---|---|
| 1 | Alice | 2024-01-01 |
| 2 | Bob | 2024-01-02 |
| 3 | Charlie | 2024-01-03 |
执行查询后会得到:
{"1":{"name":"Alice","date":"2024-01-01"},"2":{"name":"Bob","date":"2024-01-02"},"3":{"name":"Charlie","date":"2024-01-03"}}
注:JSON规范里对象的键必须是字符串,所以这里的id会以字符串形式存在,但实际解析时可以轻松转为整数使用。
内容的提问来源于stack exchange,提问作者user14473331
相关产品推荐
相关产品推荐

