2023年2月18日土曜日

SQLite3 引数を連結してJSONオブジェクトを作る(json_object())

概要

json_object関数を使用すると引数を連結してJSON形式のデータを作ることができる。
JSONオブジェクトと言うより連想配列と言った方がいいような気もする。

構文

json_objectの引数に連想配列の キーと値を交互に渡す必要がある。


json_object(key, value, key, value...)
                

環境

  • Windows 10 64bit
  • SQLite3 (3.40.1) Command-Line Shell

実行例


sqlite> -- # 1.
sqlite> select json_object('a',1,'b',2);
{"a":1,"b":2}

sqlite> -- # 2.
sqlite> select json_object('a',1,'b','{e:5}');
{"a":1,"b":"{e:5}"}

sqlite> -- # 3.
sqlite> select json_object('a',1,'b',json('[1,2,3]'));
{"a":1,"b":[1,2,3]}

sqlite> -- # 4.
sqlite> select json_object('a',1,json('[1,2,3]'),2);
{"a":1,"[1,2,3]":2}

sqlite> -- # 5.
sqlite> select json_object('a',1,'b',json_object('c',2,'d',4));
{"a":1,"b":{"c":2,"d":4}}
                
  1. キーと値を順番に指定して連想配列を作る
  2. 値に文字列としてJSONオブジェクトを渡しても文字列として認識されるだけ
  3. JSON関数等で変換すればJSONオブジェクトとして正しく認識される
  4. JSONオブジェクトをキーに渡すと文字列として認識される
  5. json_object()の返り値もJSONオブジェクトとして認識される

参考URL