SQLiteでは、json_quote()
関数は、数値または文字列を対応するJSON表現に変換します。
関数を呼び出すときに引数として数値または文字列を指定すると、関数はその値のJSON表現を返します。
構文
構文は次のようになります:
json_quote(X)
ここでX
は数字または文字列です。
例
関数に文字列を渡すと、次のようになります。
SELECT json_quote('Super');
結果:
"Super"
そして、ここにいくつかあります:
SELECT json_quote(10.45);
結果:
10.45
配列のように見える文字列は次のとおりです。
SELECT json_quote('[10.45]');
結果:
"[10.45]"
オブジェクトのように見える文字列は次のとおりです:
SELECT json_quote('{ "score" : 10.45 }');
結果:
"{ \"score\" : 10.45 }"
しかし、json()
で引数を渡すと 関数、これを取得します:
SELECT json_quote(json('{ "score" : 10.45 }'));
結果:
{"score":10.45}
ヌル値
null
を渡す null
を返します :
SELECT json_quote( null );
結果:
null
これは実際にはSQLテキスト値null
です 。これをjson_type()
に渡すことで確認できます 機能:
SELECT json_type(json_quote( null ));
結果:
null
json_type()
関数は、引数のSQLテキスト値型を返します。この場合、null
を返しました 、これはjson_quote()
を示します 関数がnull
を返しました null
を渡したとき それに。
SQLiteCLIがnull
を返していると思われる場合 実際のnull値が返されるため、次のようにして除外することができます。
.nullvalue N/A
これは、コマンドラインインターフェイスにN/A
を返すように指示します。 null値が返されるときはいつでも。
上記のコマンドを実行したら、前のステートメントと、実際にnull値になる操作をもう一度実行してみましょう。
SELECT
json_quote( null ) AS json_quote,
json_type(json_quote( null )) AS json_type,
1 / 0 AS actual_null;
結果:
+------------+-----------+-------------+ | json_quote | json_type | actual_null | +------------+-----------+-------------+ | null | null | N/A | +------------+-----------+-------------+
SQLiteでは、数値をゼロで割るとnull値になります(このような場合、他の多くのDBMSはエラーをスローします)。この例では、N/A
を返すようにnull値を設定しました 、したがって、2つの関数の出力と実際のnull値の間に違いがあることがわかります。つまり、上記の出力の唯一のnull値は最後の列にあります。
そうは言っても、null値はSQLテキスト値null
になる可能性があります json_quote()
を呼び出すと返されます 。おそらく、例は私が説明できるよりもこれをよく示しています:
SELECT
json_quote( 1 / 0 ),
json_type(json_quote( 1 / 0 )),
json_type( 1 / 0 ),
1 / 0;
結果:
+---------------------+--------------------------------+--------------------+-------+ | json_quote( 1 / 0 ) | json_type(json_quote( 1 / 0 )) | json_type( 1 / 0 ) | 1 / 0 | +---------------------+--------------------------------+--------------------+-------+ | null | null | N/A | N/A | +---------------------+--------------------------------+--------------------+-------+
最初の2列がnull
を返すことがわかります SQLテキスト値、および他の2つの列は実際のnull値を返します。
ブール値の受け渡し
true
などのブール値を渡す例を次に示します。 およびfalse
:
SELECT
json_quote( true ) AS true,
json_quote( false ) AS false;
結果:
+------+-------+ | true | false | +------+-------+ | 1 | 0 | +------+-------+
無効な引数カウント
引数を渡さずに関数を呼び出すと、エラーが発生します:
SELECT json_quote();
結果:
Parse error: wrong number of arguments to function json_quote() SELECT json_quote(); ^--- error here
また、あまりにも多くの引数を渡すと、エラーが発生します:
SELECT json_quote( 1, 2 );
結果:
Parse error: wrong number of arguments to function json_quote() SELECT json_quote( 1, 2 ); ^--- error here