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 | +------+---------+------+------+------+-------+