SQL Server JSON -datatype

SQL Server JSON -datatype
JavaScript -objektnotasjon eller JSON for kort, er et datautvekslingsformat som brukes i lagring og transport av data. Det brukes sterkt i applikasjoner som dokumentdatabaser som bruker dokumenterindekser i stedet for tabeller. Det er også standardspråket for API -endepunkter for operasjoner som inntak og resultater.

I SQL kan vi jobbe med JSON -data og konvertere dem til rader og kolonner er vi vil se i denne opplæringen.

Det grunnleggende

JSON -data er organisert i sett med unike nøkler og deres respektive par. Du kan også lage flere poster ved hjelp av krøllete seler.

Følgende streng viser et eksempel på en gyldig JSON:


"id": 1,
"FirstName": "Rosanne",
"LastName": "Carbo",
"date_of_birth": "1987-10-06",
"City": "Vladivostok",
"Land": "Turkmenistan",
"countrycode": "au",
"E -post": "[email protected] ",
"Høyde": 19.957,
"is_ arbeidsledig": sant,
"Lønn": "$ 120000",
"Avdeling": "Databaseutvikler"

Ved hjelp av forskjellige metoder og funksjoner kan vi validere JSON -data og transformere dem til en SQL -tabell.

SQL Server validerer JSON

SQL Server gir deg en funksjon for å bestemme om den medfølgende strengen er gyldig JSON -data eller ikke.

Syntaksen er som vist:

ISJSON (uttrykk)

Hvor uttrykket refererer til den faktiske JSON til streng for å teste for gyldighet.

erklære@var nvarchar (maks)
set @var = '

"id": 1,
"FirstName": "Rosanne",
"LastName": "Carbo",
… avkortet…
"Lønn": "$ 120000",
"Avdeling": "Databaseutvikler"

'
if (isJson (@var)> 0)
begynne
Skriv ut 'gyldig JSON'
slutt

Spørringen skal teste om den medfølgende strengen er en gyldig JSON -data og returner et heltall. 1 indikerer at strengen er gyldig JSON og 0 hvis ellers.

Ovennevnte spørring skal returnere:

Gyldig JSON

SQL Server Endre JSON -data

SQL Server lar deg også endre data som er lagret i en JSON -streng. Ved hjelp av JSON_Modify -funksjonen kan du endre verdien til en spesifikk JSON -egenskap og returnere oppdateringen JSON -data.

For eksempel:

erklære @var nvarchar (maks)
set @var = '

"id": 1,
"FirstName": "Rosanne",
"LastName": "Carbo",
"Lønn": "$ 120000",
"Avdeling": "Databaseutvikler"

'
set @var = json_modify (@var, '$.avdeling ',' spillutvikler ');
Velg ModifiedJson = @var;

Når vi har endret dataene, bør funksjonen returnere den nye JSON som vist:

SQL Server konverter JSON til Rowset

Vi kan konvertere en gyldig JSON -data til en SQL Server Rowset ved hjelp av OpenJSON -funksjonen, en normal SQL SELECT -setning.

Eksemplet nedenfor bruker OpenJSON () -funksjonen for å transformere JSON til et rowsett. Vi bruker deretter Select -setningen for å spørre dataene.

erklære @var nvarchar (maks)
set @var = '

"id": 1,
"FirstName": "Rosanne",
"LastName": "Carbo",
"Lønn": "$ 120000",
"Avdeling": "Databaseutvikler"

'
plukke ut *
fra OpenJSON (@var)
med (
id int 'streng $.id ',
FIRSTNAME VARCHAR (50) '$.fornavn',
etternavn varchar (50) '$.etternavn',
Lønnspenger '$.lønn',
Avdeling varchar (50) '$.avdeling'
);

Spørringen ovenfor skal returnere gyldig SQL -tabell som vist:

Selv om vi brukte en enkel JSON -streng, kan OpenJSON () -funksjonen håndtere dypt nestede JSON -objekter.

Den strenge egenskapen i en sti krever at en verdi må eksistere i den spesifiserte egenskapen til JSON -strengen.

Konverter SQL Server -data til JSON

Du kan eksportere SQL Server -data til gyldig JSON ved hjelp av for JSON Path -parameteren. For eksempel:

Bruk SalesDB;
Velg Topp 5 Nameas "-produkt.navn ", pris som" produkt.pris"
Fra produkter
forjsonpath;

Ovennevnte spør om navnet og priskolonnen fra produkttabellen, henter de 5 beste postene og eksporter dem som JSON. Spørringen skal returnere en hyperkobling som inneholder JSON -strengen:

Du kan åpne hyperkoblingen for å se JSON -strengen som er lagret som:

Konklusjon

Denne artikkelen hjelper deg å komme i gang med å jobbe med JSON -data i SQL Server. Du er i stand til å validere JSON i SQL Server, endre JSON -strenger, konvertere JSON -data til et rowset, og hvordan du eksporterer SQL Server -data til JSON.