Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics sql analytics endpoint
in Microsoft Fabric
Warehouse in Microsoft FabricSQL Database in Microsoft Fabric SQL Database
in Microsoft Fabric
La ISJSON sintaxis comprueba si una cadena contiene json válido.
Convenciones de sintaxis de Transact-SQL
Syntax
ISJSON ( expression [, json_type_constraint] )
Arguments
expression
Cadena que se va a comprobar.
json_type_constraint
Especifica el tipo JSON para comprobar en la entrada. Los valores válidos son VALUE, ARRAY, OBJECT o SCALAR. Introducido en SQL Server 2022 (16.x).
Note
El argumento json_type_constraint no se admite en grupos dedicados de Azure Synapse Analytics
Valor devuelto
Devuelve 1 si la cadena contiene un valor JSON válido; en caso contrario, devuelve 0. Devuelve NULL si expression es null.
Si la instrucción omite json_type_constraint, la función comprueba si la entrada es un objeto o matriz JSON válido y devuelve 1 de lo contrario, devuelve 0.
Si se especifica el json_type_constraint , la función comprueba el tipo JSON de la siguiente manera:
| Value | Description |
|---|---|
VALUE |
Comprueba si hay un valor JSON válido. Puede ser un objeto JSON, una matriz, un número, una cadena o uno de los tres valores literales (false, true, null) |
ARRAY |
Pruebas de una matriz JSON válida |
OBJECT |
Pruebas de un objeto JSON válido |
SCALAR |
Pruebas de un valor escalar JSON válido: número o cadena |
El valor de json_type_constraint SCALAR se puede usar para probar el documento JSON compatible con IETF RFC 8259 que contiene solo un valor escalar JSON en el nivel superior. Un documento JSON que no contiene un valor escalar JSON en el nivel superior se ajusta a la RFC 4627 del IETF.
No devuelve errores.
Remarks
ISJSON no comprueba la unicidad de las claves en el mismo nivel.
Examples
Ejemplo 1
En el siguiente ejemplo se ejecuta un bloque de instrucciones de forma condicional si el valor del parámetro @param contiene un valor JSON válido.
DECLARE @param <data type>
SET @param = <value>
IF (ISJSON(@param) > 0)
BEGIN
-- Do something with the valid JSON value of @param.
END
Ejemplo 2
En el ejemplo siguiente, se devuelven las filas en las que la columna json_col contiene JSON válido.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col) = 1
Ejemplo 3
En el ejemplo siguiente, se devuelven las filas en las que la columna json_col contiene un valor SCALAR JSON válido en el nivel superior.
SELECT id, json_col
FROM tab1
WHERE ISJSON(json_col, SCALAR) = 1
Ejemplo 4
En el ejemplo siguiente se devuelve 1, ya que la entrada es un valor JSON válido: true.
SELECT ISJSON('true', VALUE)
Ejemplo 5
En el ejemplo siguiente se devuelve 0, ya que la entrada es un valor JSON no válido.
SELECT ISJSON('test string', VALUE)
Ejemplo 6
En el ejemplo siguiente se devuelve 1, ya que la entrada es un valor escalar JSON válido según RFC 8259.
SELECT ISJSON('"test string"', SCALAR)