SQLite
 sql >> Baza danych >  >> RDS >> SQLite

SQLite JSON_TYPE()

SQLite json_type() funkcja zwraca typ najbardziej zewnętrznego elementu danego JSON.

Podajemy JSON jako argument, gdy wywołujemy funkcję.

Możemy opcjonalnie przekazać ścieżkę, która pozwala nam uzyskać typ określonego elementu tablicy lub składowej obiektu w JSON.

Składnia

Z funkcji możemy korzystać w następujący sposób:

json_type(X)
json_type(X,P)

Gdzie X reprezentuje JSON, a P jest opcjonalnym argumentem, który reprezentuje ścieżkę do pobrania typu.

Funkcja zwraca jedną z następujących wartości tekstowych SQL: null , true , false , integer , real , text , array lub object .

Przykład

Oto przykład pokazujący, jak to działa:

SELECT json_type('{ "name" : "Fluffy", "age" : 10 }');

Wynik:

object

Tutaj podałem tylko JSON – nie podałem ścieżki. W tym przypadku najbardziej zewnętrzny JSON jest obiektem.

Oto tablica:

SELECT json_type('[ 1, 2, 3 ]');

Wynik:

array

Możemy nawet robić takie rzeczy:

SELECT json_type(10.45);

Wynik:

real

W tym przypadku mój argument nie jest w rzeczywistości obiektem ani tablicą JSON, ale json_type() i tak był w stanie zwrócić swój typ.

Określ ścieżkę

Oto, co się dzieje, gdy określamy ścieżkę:

SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.age');

Wynik:

integer

W tym przypadku określiłem ścieżkę $.age , co spowodowało typ age zwracany członek.

Uzyskajmy typ name członek:

SELECT json_type('{ "name" : "Fluffy", "age" : 10 }', '$.name');

Wynik:

text

Zróbmy to na tablicy:

SELECT json_type('[ "Wag", 2, 1.5, null, true, false ]', '$[0]');

Wynik:

text

Który otrzymał typ pierwszego elementu (tablice SQLite są liczone od zera, więc 0 dotyczy pierwszego elementu).

Pobierzmy typy wszystkich elementów w tablicy:

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";

Wynik:

+------+---------+------+------+------+-------+
|  0   |    1    |  2   |  3   |  4   |   5   |
+------+---------+------+------+------+-------+
| text | integer | real | null | true | false |
+------+---------+------+------+------+-------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie Android SQLite, w którym kolumna nie jest pusta i nie jest pusta

  2. Niezgodność typu danych (kod 20) podczas wstawiania

  3. Jaka jest różnica między REFERENCJAMI z KLUCZEM OBCYM lub bez niego?

  4. PRAGMA table_list w SQLite

  5. Jak zaimportować bibliotekę trwałości pokoju do projektu Androida?