概要
json_array_length
関数でJSON配列の要素数を取得することが出来る。
なお、取得できるのは配列だけで連想配列の要素数は取得できない。
環境
- Windows 10 64bit
- SQLite3 (3.41.2) Command-Line Shell
構文
json_array_length(json_string)
json_array_length(json_string, json_path)
実行例
sqlite> -- # 1.
sqlite> select json_array_length('[1,2,3,4]');
4
sqlite> select json_array_length('["a", "b", "c"]');
3
sqlite> -- # 2.
sqlite> select json_array_length('
' ...> {
' ...> "a": 100
' ...> ,"b": 200
' ...> ,"c": 300
' ...> ,"d": 400
' ...> }
' ...> ');
0
sqlite> -- # 3.
sqlite> select json_array_length('
' ...> [
' ...> 1
' ...> , [2,3]
' ...> , 4
' ...> ]
' ...> ');
3
- JSONの配列の要素数を取得する
- 連想配列の要素数は取得出来ない
- JSON Pathを指定しないと最上位の要素数を返す
sqlite> .nullvalue [null]
sqlite> select json_array_length('[1,2,3,4]', '$');
4
sqlite> select json_array_length('[1,2,3,4]', '$[2]');
0
sqlite> -- # 2.
sqlite> select json_array_length('
' ...> {
' ...> "a": 100
' ...> , "b": [ 200, 300 ]
' ...> , "c": 400
' ...> }
' ...> ', '$.b');
2
sqlite> -- # 3.
sqlite> select json_array_length('
' ...> {
' ...> "a": 100
' ...> , "b": [ 200, 300 ]
' ...> , "c": 400
' ...> }
' ...> ', '$.d');
[null]
sqlite> -- # 4.
sqlite> select json_array_length('
' ...> {
' ...> "a": 100
' ...> , "b": [ 200, 300 ]
' ...> , "c": {
' ...> "d": 400
' ...> , "e": 500
' ...> }
' ...> }
' ...> ', '$.c');
0
- JSON Pathで指定した要素の要素数を取得する
- JSON Pathで指定すると連想配列内の配列の要素数を取得出来る
- JSON Pathで指定した要素がない場合、NULLが返される
- JSON Pathで指定しても連想配列の要素数は取得出来ない
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html -
The json_array_length() function
公式のjson_array_length()に関するドキュメント
https://www.sqlite.org/json1.html#jarraylen