sql >> Databasteknik >  >> RDS >> Mysql

JSON_TYPE() – Få en JSON-värdestyp i MySQL

I MySQL, JSON_TYPE() funktion returnerar typen av ett JSON-värde. Mer specifikt returnerar den en utf8mb4 sträng som anger värdets typ.

Du anger JSON-värdet som ett argument.

Syntax

Syntaxen ser ut så här:

JSON_TYPE(json_val)

Där json_val är det JSON-värde som typen ska returneras för. Detta kan vara ett objekt, en array eller en skalär typ.

Exempel 1 – Objekt

Här är ett exempel när värdet är ett objekt.

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT JSON_TYPE(@data) 'JSON Type';

Resultat:

+-----------+
| JSON Type |
+-----------+
| OBJECT    |
+-----------+

Exempel 2 – Array

Här är ett exempel på array.

SET @data = '[1, 2, 3]';
SELECT JSON_TYPE(@data) 'JSON Type';

Resultat:

+-----------+
| JSON Type |
+-----------+
| ARRAY     |
+-----------+

Exempel 3 – Extrahera data från en array

Du kan också få typen av de enskilda elementen i arrayen.

SET @data = '[1, 2, 3]';
SELECT 
  JSON_EXTRACT(@data, '$[1]') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$[1]')) 'JSON Type';

Resultat:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| 2    | INTEGER   |
+------+-----------+

Exempel 4 – Extrahera data från ett objekt

Detsamma gäller medlemmar av ett objekt.

SET @data = '{"Name": "Homer", "Stupid": "True"}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Resultat:

+--------+-----------+
| Data   | JSON Type |
+--------+-----------+
| "True" | STRING    |
+--------+-----------+

I det fallet var värdet den bokstavliga strängen "True" .

Här är ett annat exempel, men den här gången med det booleska värdet true .

SET @data = '{"Name": "Homer", "Stupid": true}';
SELECT 
  JSON_EXTRACT(@data, '$.Stupid') 'Data',
  JSON_TYPE(JSON_EXTRACT(@data, '$.Stupid')) 'JSON Type';

Resultat:

+------+-----------+
| Data | JSON Type |
+------+-----------+
| true | BOOLEAN   |
+------+-----------+

Exempel 5 – Databasfråga

Det här exemplet använder en databaskolumn.

SELECT 
  Contents,
  JSON_TYPE(Contents) 'Contents',
  JSON_TYPE(JSON_EXTRACT(Contents, '$.Name')) 'Name'
FROM Collections 
WHERE CollectionId = 4;

Resultat:

+--------------------------------+----------+--------+
| Contents                       | Contents | Name   |
+--------------------------------+----------+--------+
| {"Name": "Homer", "Stupid": 1} | OBJECT   | STRING |
+--------------------------------+----------+--------+

  1. Hur man tar bort ett lösenord från en databas i Access 2016

  2. Hur kan jag importera en JSON-fil till PostgreSQL?

  3. Kalkylblad kontra databaser:Är det dags att byta? Del 2

  4. org.postgresql.util.PSQLEUndantag:Stora objekt får inte användas i auto-commit-läge