概要
json_type
関数を使うと要素の型を調べることが出来る。
判定出来る型は以下の通り。
型名 | 意味 | 例 |
---|---|---|
object | 連想配列 |
|
array | 配列 |
|
integer | 整数 |
|
real | 浮動小数点 |
|
true | 真 |
|
false | 偽 |
|
null | NULL値 |
|
text | 文字列 |
|
判定できなかった場合はエラーになる
構文
json_type(json_string, json_path)
実行例
環境
- Windows 10 64bit
- SQLite3 (3.41.2) Command-Line Shell
sqlite> -- # 1.
sqlite> select json_type('
' ...> {
' ...> "string_01" : [ 0, 1, 2, 3]
' ...> , "string_02" : null
' ...> }
' ...> ');
object
sqlite> -- # 2.
sqlite> select json_type('
' ...> [ 0, 1, 2, 3 ]
' ...> ');
array
sqlite> -- # 3.
sqlite> select json_type('10');
integer
sqlite> -- # 4.
sqlite> select json_type('3.14');
real
sqlite> -- # 5.
sqlite> select json_type('true');
true
sqlite> -- # 6.
sqlite> select json_type('false');
false
sqlite> -- # 7.
sqlite> select json_type('null');
null
sqlite> -- # 8.
sqlite> select json_type('"This is Text"');
text
- いわゆる連想配列は「object」として判定される
- 通常の配列の場合は「array」
- 整数は「integer」
- 浮動小数点は「real」
- 真偽値のtrueは「true」
- 真偽値のfalseは「false」
- nullは「null」
- 文字列は「text」
なお、json_type()
の返り値自体は文字列型となっている。
JSON型以外を引数に指定すると以下のような結果になる
sqlite> .nullvalue [null]
sqlite> -- # 1.
sqlite> select json_type('This is Text');
Runtime error: malformed JSON
sqlite> -- # 2.
sqlite> select json_type(10);
integer
sqlite> -- # 3.
sqlite> select json_type(3.14);
real
sqlite> -- # 4.
sqlite> select json_type(true);
integer
sqlite> select json_type(false);
integer
sqlite> -- # 5.
sqlite> select json_type(null);
[null]
- JSON形式になっていない場合はエラーとなる
- 文字列ではなく素の整数でもintegerとして判定される
- 文字列ではなく素の小数点でもrealとして判定される
- trueやbooleanは数値型として判定される
- nullはnullが返り値となる
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html -
The json_type() function
公式のjson_type()に関するドキュメント
https://www.sqlite.org/json1.html#the_json_type_function