概要
json_array
関数を使用すると引数を連結してJSON形式の配列を作ることが出来る。
数値、文字列、null等を認識してくれるし、他のJSON関連の関数の返り値も使用出来る。
環境
- Windows 10 64bit
- SQLite3 (3.40.1) Command-Line Shell
実行例
sqlite> -- # 1.
sqlite> select json_array(1,2,3,4);
[1,2,3,4]
sqlite> -- # 2.
sqlite> select json_array('1',2,'3',4);
["1",2,"3",4]
sqlite> -- # 3.
sqlite> select json_array(1,null,3,4);
[1,null,3,4]
sqlite> -- # 4.
sqlite> select json_array(1,'[2,3]',4);
[1,"[2,3]",4]
sqlite> -- # 5.
sqlite> select json_array(1,[2,3],4);
Parse error: no such column: 2,3
select json_array(1,[2,3],4);
^--- error here
sqlite> -- # 6.
sqlite> select json_array(1,json('[2,3]'),4);
[1,[2,3],4]
sqlite> -- # 7.
sqlite> select json_array(1,'{"id":2}',3,4);
[1,"{\"id\":2}",3,4]
sqlite> -- # 8.
sqlite> select json_array(1,json('{"id":2}'),3,4);
[1,{"id":2},3,4]
- 引数をそのまま連結してJSON形式の配列を作る
- 文字列と数値を判別してJSON形式の配列を作る
- SQLiteのnullはJSONのnullとして判別される
- 文字列でJSON形式の配列を渡しても文字列として認識されるだけ
- 括弧を使ってそのまま渡すとエラーになる
- JSONとして認識してほしいのであればjson関数等を使用してJSONオブジェクトを渡す
-
連想配列も文字列とし渡しても文字列として認識されるだけ
エスケープ処理は自動的にやってくれる。 - 連想配列もjson関数等を使用すればJSONオブジェクトとして認識させることが出来る
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html
-
SQLite3 文字列をJSONオブジェクトに変換する(JSON())
https://sfnovicenotes.blogspot.com/2023/02/sqlite3-jsonjson.html