SQLite json_type()
hàm trả về kiểu của phần tử ngoài cùng của JSON đã cho.
Chúng tôi cung cấp JSON làm đối số khi chúng tôi gọi hàm.
Chúng ta có thể tùy chọn chuyển một đường dẫn, cho phép chúng ta lấy kiểu của một phần tử mảng hoặc thành viên đối tượng cụ thể trong JSON.
Cú pháp
Chúng ta có thể sử dụng hàm theo những cách sau:
json_type(X)
json_type(X,P)
Ở đâu X
đại diện cho JSON và P
là một đối số tùy chọn đại diện cho đường dẫn đến loại.
Hàm trả về một trong các giá trị văn bản SQL sau:null
, true
, false
, integer
, real
, text
, array
hoặc object
.
Ví dụ
Dưới đây là một ví dụ để chứng minh cách nó hoạt động:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');
Kết quả:
đối tượngobject
Ở đây tôi chỉ cung cấp JSON - tôi không cung cấp đường dẫn. Trong trường hợp này, JSON ngoài cùng là một đối tượng.
Đây là một mảng:
SELECT json_type('[ 1, 2, 3 ]');
Kết quả:
array
Chúng tôi thậm chí có thể làm những thứ như thế này:
SELECT json_type(10.45);
Kết quả:
real
Trong trường hợp này, đối số của tôi không thực sự là một đối tượng hoặc mảng JSON mà là json_type()
vẫn có thể trả lại loại của nó.
Chỉ định một đường dẫn
Đây là những gì sẽ xảy ra khi chúng tôi chỉ định một đường dẫn:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');
Kết quả:
integer
Trong trường hợp này, tôi đã chỉ định một đường dẫn là $.age
, dẫn đến loại age
thành viên được trả lại.
Hãy lấy loại name
thành viên:
SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');
Kết quả:
text
Hãy làm điều đó trên một mảng:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Kết quả:
text
Điều đó có kiểu của phần tử đầu tiên (các mảng SQLite dựa trên 0, vì vậy 0
dành cho phần tử đầu tiên).
Hãy lấy loại của tất cả các phần tử trong mảng:
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";
Kết quả:
+------+---------+------+------+------+-------+ | 0 | 1 | 2 | 3 | 4 | 5 | +------+---------+------+------+------+-------+ | text | integer | real | null | true | false | +------+---------+------+------+------+-------+