ISJSON (T-SQL)

Berlaku untuk: SQL Server 2016 (13.x) dan yang lebih baru Azure SQL DatabaseAzure SQL Managed InstanceTitik akhir analitik Azure Synapse AnalyticsSQL di Microsoft FabricWarehouse di Microsoft Fabric

Menguji apakah string berisi JSON yang valid.

Konvensi sintaks transact-SQL

Sintaks

ISJSON ( expression [, json_type_constraint] )  

Argumen

expression
String yang akan diuji.

json_type_constraint

Menentukan jenis JSON untuk memeriksa input. Nilai yang valid adalah VALUE, ARRAY, OBJECT, atau SCALAR. Diperkenalkan di SQL Server 2022 (16.x).

Catatan

Argumen json_type_constraint tidak didukung di kumpulan Khusus Azure Synapse Analytics

Nilai hasil

Mengembalikan 1 jika string berisi JSON yang valid; jika tidak, mengembalikan 0. Mengembalikan null jika ekspresi null. Jika pernyataan menghilangkan json_type_constraint, fungsi akan menguji apakah input adalah objek atau array JSON yang valid dan mengembalikan 1 jika tidak, maka akan mengembalikan 0. Jika json_type_constraint ditentukan, fungsi memeriksa jenis JSON sebagai berikut:

Nilai Deskripsi
VALUE Pengujian untuk nilai JSON yang valid. Ini bisa berupa objek JSON, array, angka, string atau salah satu dari tiga nilai harfiah (false, true, null)
ARRAY Pengujian untuk array JSON yang valid
OBJECT Pengujian untuk objek JSON yang valid
SKALAR Pengujian untuk skalar JSON yang valid – angka atau string

Nilai json_type_constraint SCALAR dapat digunakan untuk menguji dokumen JSON sesuai IETF RFC 8259 yang hanya berisi nilai skalar JSON di tingkat atas. Dokumen JSON yang tidak berisi nilai skalar JSON di tingkat atas sesuai dengan IETF RFC 4627.

Tidak mengembalikan kesalahan.

Keterangan

ISJSON tidak memeriksa keunikan kunci pada tingkat yang sama.

Contoh

Contoh 1

Contoh berikut menjalankan blok pernyataan secara kondisional jika nilai @param parameter berisi JSON yang valid.

DECLARE @param <data type>
SET @param = <value>

IF (ISJSON(@param) > 0)  
BEGIN  
     -- Do something with the valid JSON value of @param.  
END

Contoh 2

Contoh berikut mengembalikan baris di mana kolom json_col berisi JSON yang valid.

SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1 

Contoh 3

Contoh berikut mengembalikan baris di mana kolom json_col berisi nilai JSON SCALAR yang valid di tingkat atas.

SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1 

Contoh 4

Contoh berikut mengembalikan 1 karena input adalah nilai JSON yang valid - true.

SELECT ISJSON('true', VALUE)

Contoh 5

Contoh berikut mengembalikan 0 karena input adalah nilai JSON yang tidak valid.

SELECT ISJSON('test string', VALUE)

Contoh 6

Contoh berikut mengembalikan 1 karena input adalah skalar JSON yang valid sesuai dengan RFC 8259.

SELECT ISJSON('"test string"', SCALAR)

Baca juga

JSON Data (SQL Server)