SQLite json_type()
関数は、指定されたJSONの最も外側の要素のタイプを返します。
関数を呼び出すときに、引数としてJSONを提供します。
オプションでパスを渡すことができます。これにより、JSON内の特定の配列要素またはオブジェクトメンバーのタイプを取得できます。
構文
この関数は次のように使用できます。
json_type(X)
json_type(X,P)
ここでX
JSONを表し、P
タイプを取得するためのパスを表すオプションの引数です。
この関数は、次のSQLテキスト値のいずれかを返します:null
、true
、false
、integer
、real
、text
、array
、またはobject
。
例
これがどのように機能するかを示す例です:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
結果:
object
ここでは、JSONのみを提供しました–パスは提供しませんでした。この場合、最も外側のJSONはオブジェクトです。
配列は次のとおりです:
SELECT json_type('[ 1, 2, 3 ]');
結果:
array
次のようなこともできます:
SELECT json_type(10.45);
結果:
real
この場合、私の引数は実際にはJSONオブジェクトまたは配列ではなく、json_type()
とにかくそのタイプを返すことができました。
パスを指定
パスを指定すると、次のようになります。
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
結果:
integer
この場合、$.age
のパスを指定しました 、その結果、age
のタイプになりました メンバーが返されます。
name
のタイプを取得しましょう メンバー:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
結果:
text
アレイでやってみましょう:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
結果:
text
これで最初の要素のタイプがわかりました(SQLite配列はゼロベースなので、0
最初の要素用です。
配列内のすべての要素のタイプを取得しましょう:
SELECT
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]') AS "0",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[1]') AS "1",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[2]') AS "2",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[3]') AS "3",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[4]') AS "4",
json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[5]') AS "5";
結果:
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 | +------+---------+------+------+------+-------+ | text | integer | real | null | true | false | +------+---------+------+------+------+-------+