JSON配列の長さを返す。
成果物
JSON配列→長さ
ターミナルで以下コマンドを実行する。
sqlite3
対話モードにて以下コマンドをコピペし実行。
create table users(id int primary key, json text); insert into users values(111, '[1,2]'); insert into users values(222, '["A","B","C"]'); insert into users values(333, '[]'); .headers on .mode column select json_array_length(name) from users;
json_array_length(json) ----------------------- 2 3 0
行→JSON配列→長さ
create table users(id int primary key, name text); insert into users values(111, 'yamada'); insert into users values(222, 'suzuki'); insert into users values(333, 'tanaka'); .headers on .mode column select json_group_array(name) from users; select json_array_length(json_group_array(name)) from users;
json_group_array(name) ---------------------------- ["yamada","suzuki","tanaka"] json_array_length(json_group_array(name)) ----------------------------------------- 3
JSONパス
create table users(id int primary key, json text); insert into users values(111, '{"list": [1,2]}'); insert into users values(222, '{"list": ["A","B","C"]}'); insert into users values(333, '{"list": []}'); .headers on .mode column select json_array_length(json, '$.list') from users;
json_array_length(json, '$.list') --------------------------------- 2 3 0
第二引数にJSONパスを指定できる。
所感
オブジェクトのキー数を取得する関数はない。配列の場合は個数がインデックス上限になりキーを特定できる重要なものだから?
でも、それならオブジェクトのキー一覧関数があってもいいような? keys()
, has_key()
とか。ないんだよ。
情報源
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
- SQLite 3.29.0
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux
前回まで
- SQLite3学習をはじめよう
- SQLite3学習 SQLiteについて
- SQLite3学習 SQLiteの適切な用途
- SQLite3学習 SQLiteの特徴
- SQLite3学習 SQLiteのクセ
- SQLite3学習 データ型とアフィニティ
- SQLite3学習 演算子の一覧
- SQLite3学習 よくある質問
- SQLite3学習 SQLiteダウンロード&コンパイル
- SQLite3学習 Tclで操作する
- SQLite3学習 ビルドオプション動作確認(SQLITE_ALLOW_URI_AUTHORITY)
- SQLite3学習 面白そうなコンパイルオプション
- SQLite3学習 SQLiteの拡張について
- SQLite3学習 JSON拡張
- SQLite3学習 JSON拡張(json_extract)
- SQLite3学習 JSON拡張(json_each)
- SQLite3学習 JSON拡張(json_tree オブジェクト→行)
- SQLite3学習 JSON拡張(json_tree オブジェクトツリー→行)
- SQLite3学習 JSON拡張(json_tree オブジェクト配列→行)
- SQLite3学習 JSON拡張(json_group_array 行→配列)
- SQLite3学習 JSON拡張(json_group_object 行→オブジェクト)