2023年2月25日土曜日

SQLite3 正しいJSONフォーマットかどうかを確認する(json_valid())

概要

文字列が正しいJSONフォーマットかどうかを確認するにはjson_valid関数を使用する。 引数にJSONの文字列を渡すと、「1」が返れば正しいJSONフォーマット、「0」が返れば正しくないJSONフォーマットということになる。

JSONフォーマットについて正しく勉強したい場合はRFCを見ること。

構文


json_valid(string)
                

環境

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

実行例


sqlite> -- # 1.
sqlite> select json_valid('
   ...>     {"a":1, "b":2}
   ...> ');
1
sqlite> -- # 2.
sqlite> select json_valid('
   ...>     {"a":1, "b":2
   ...> ');
0
sqlite> -- # 3.
sqlite> select json_valid(
   ...>     json('[1,2,3,4]')
   ...> );
1
sqlite> -- # 4.
sqlite> select json_valid(
   ...>     1
   ...> );
1
sqlite> -- # 5.
sqlite> select json_valid(
   ...>     [1,2,3]
   ...> );
Parse error: no such column: 1,2,3
  select json_valid(     [1,2,3] );
                         ^--- error here
                
  1. 正しいJSONフォーマットなら1が返る。
  2. 間違ったJSONフォーマットなら0が返る。
  3. JSONオブジェクトを渡しても1が返る。
  4. 数値や文字列もJSONとして判定される模様。
  5. 文字列として渡さなければエラー。

参考URL