SQLite json_type()
функцията връща типа на най-външния елемент на дадения JSON.
Ние предоставяме JSON като аргумент, когато извикаме функцията.
По избор можем да предадем път, който ни позволява да получим типа на конкретен елемент на масива или член на обект в JSON.
Синтаксис
Можем да използваме функцията по следните начини:
json_type(X)json_type(X,P)
Където X
представлява JSON и P
е незадължителен аргумент, който представлява пътя за получаване на типа на.
Функцията връща една от следните текстови стойности на SQL: null
, true
, false
, цяло число
, истински
, текст
, масив
или обект
.
Пример
Ето пример, за да демонстрирате как работи:
SELECT json_type('{ "name" :"Fluffy", "age" :10 }');
Резултат:
обект
Тук предоставих само JSON - не предоставих път. В този случай най-външният JSON е обект.
Ето един масив:
ИЗБЕРЕТЕ json_type('[ 1, 2, 3 ]');
Резултат:
масив
Можем дори да правим неща като това:
ИЗБЕРЕТЕ json_type(10.45);
Резултат:
истински
В този случай моят аргумент всъщност не е JSON обект или масив, а json_type()
така или иначе успя да върне типа му.
Посочете път
Ето какво се случва, когато посочим път:
SELECT json_type('{ "name" :"Fluffy", "age" :10 }', '$.age');
Резултат:
цяло число
В този случай посочих път на $.age
, което доведе до типа на age
член се връща.
Нека разберем типа на name
член:
SELECT json_type('{ "name" :"Fluffy", "age" :10 }', '$.name');
Резултат:
текст
Нека го направим в масив:
SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');
Резултат:
текст
Това получи типа на първия елемент (масивите на SQLite са базирани на нула, така че 0
е за първия елемент).
Нека вземем типовете на всички елементи в масива:
ИЗБЕРЕТЕ json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]') КАТО "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]') КАТО "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 |+------+----------+------+------+------+-------+| текст | цяло число | истински | нула | вярно | невярно |+------+---------+------+------+------+-------+предварително>