SQLite
 sql >> база данни >  >> RDS >> SQLite

SQLite JSON_TYPE()

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 |+------+----------+------+------+------+-------+| текст | цяло число | истински | нула | вярно | невярно |+------+---------+------+------+------+-------+ 
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Актуализиране на данните за дейността от услугата, когато е на пауза

  2. Грешка в SQLiteDatabase, неполезен дневник

  3. Android Room + Функции на прозореца

  4. Robolectric достъп до базата данни хвърля грешка

  5. Поставяне на данни за курсора в масив