sql >> Databasteknik >  >> RDS >> Mysql

JSON_VALID() – Testa för giltig JSON i MySQL

När du använder MySQL kan du använda JSON_VALID() funktion för att testa om ett stränguttryck innehåller giltig JSON eller inte.

Om uttrycket innehåller giltig JSON, JSON_VALID() returnerar 1 , annars returnerar den 0 .

Syntax

Syntaxen ser ut så här:

JSON_VALID(val)

Där val är värdet som du testar för giltig JSON.

Exempel 1 – Giltig JSON

Här är ett exempel för att visa vad som händer när strängen innehåller giltig JSON.

SELECT JSON_VALID('{"Name": "Bart"}') AS Result;

Resultat:

+--------+
| Result |
+--------+
|      1 |
+--------+

Exempel 2 – Ogiltig JSON

Här är ett exempel för att visa vad som händer när strängen inte gör det innehåller giltig JSON.

SELECT JSON_VALID('Name: Bart') AS Result;

Resultat:

+--------+
| Result |
+--------+
|      0 |
+--------+

Exempel 3 – Ett databasexempel

I den här databasfrågan returneras resultaten endast där Collections.Contents kolumnen innehåller giltig JSON.

Den här specifika kolumnen använder datatypen json för att lagra JSON-dokumentet.

SELECT Contents
FROM Collections
WHERE JSON_VALID(Contents) = 1;

Resultat:

+------------+
| Contents   |
|------------|
| [
    {
        "ArtistName": "AC/DC",
        "Albums": [
            {
                "AlbumName": "Powerage"
            }
        ]
    },
    {
        "ArtistName": "Devin Townsend",
        "Albums": [
            {
                "AlbumName": "Ziltoid the Omniscient"
            },
            {
                "AlbumName": "Casualties of Cool"
            },
            {
                "AlbumName": "Epicloud"
            }
        ]
    },
    {
        "ArtistName": "Iron Maiden",
        "Albums": [
            {
                "AlbumName": "Powerslave"
            },
            {
                "AlbumName": "Somewhere in Time"
            },
            {
                "AlbumName": "Piece of Mind"
            },
            {
                "AlbumName": "Killers"
            },
            {
                "AlbumName": "No Prayer for the Dying"
            }
        ]
    }
]            |
+------------+

Här är vad som händer om vi ändrar uttalandet så att data endast returneras om det isn't är det giltig JSON.

SELECT Contents
FROM Collections
WHERE JSON_VALID(Contents) = 0;

Resultat:

Empty set (0.00 sec)


  1. OBJECTPROPERTY() vs OBJECTPROPERTYEX() i SQL Server:Vad är skillnaden?

  2. Använder dataskyddad med ett anpassat nyckellager från Linux

  3. Hur laddar din Oracle ODBC-drivrutin Oracle-klienten?

  4. FEL 1396 (HY000):Operation CREATE USER misslyckades för 'jack'@'localhost'