Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (solo grupo de SQL sin servidor)
Use expresiones de rutas de acceso JSON para hacer referencia a las propiedades de los objetos JSON.
Al llamar a las siguientes funciones, hay que proporcionar una expresión de ruta de acceso.
Cuando se llama a OPENJSON para crear una vista relacional de los datos JSON. Para obtener más información, consulte OPENJSON (Transact-SQL).
Cuando se llama a JSON_VALUE para extraer un valor de texto JSON. Para obtener más información, consulte JSON_VALUE (Transact-SQL).
Cuando se llama a JSON_QUERY para extraer un objeto JSON o una matriz. Para obtener más información, vea JSON_QUERY (Transact-SQL).
Cuando se llama a JSON_MODIFY para actualizar el valor de una propiedad en una cadena JSON. Para obtener más información, vea JSON_MODIFY (Transact-SQL).
Una expresión de ruta de acceso tiene dos componentes.
El modo de ruta de acceso opcional, con un valor de lax o strict.
La ruta de acceso en sí.
Al principio de la expresión de ruta de acceso, puede optar por declarar el modo de la ruta de acceso con las palabras clave lax o strict. El valor predeterminado es lax.
En el modo lax, las funciones devuelven valores vacíos si la expresión de ruta de acceso contiene un error. Por ejemplo, si se solicita el valor $.name y el texto JSON no contiene una clave name, la función devuelve NULL, pero no genera ningún error.
En el modo strict, las funciones generan un error si la expresión de ruta de acceso contiene un error.
La consulta siguiente especifica explícitamente el modo lax
en la expresión de ruta de acceso.
DECLARE @json NVARCHAR(MAX);
SET @json=N'{ ... }';
SELECT * FROM OPENJSON(@json, N'lax $.info');
Después de declarar (opcionalmente) el modo de ruta de acceso, se especifica la ruta de acceso.
El signo de dólar ($
) representa el elemento de contexto.
La ruta de acceso de propiedad es un conjunto de pasos de ruta de acceso. Los pasos de ruta de acceso pueden contener los siguientes elementos y operadores.
Nombres de clave. Por ejemplo, $.name
y $."first name"
. Si el nombre de clave comienza por un signo de dólar o contiene caracteres especiales, como espacios u operadores de punto (.
), insértelo entre comillas.
Elementos de matriz. Por ejemplo, $.product[3]
. Las matrices tienen una base cero.
El operador de punto (.
) indica un miembro de un objeto. Por ejemplo, en $.people[1].surname
, surname
es un elemento secundario de people
.
Los ejemplos de esta sección hacen referencia al siguiente texto JSON.
{
"people": [{
"name": "John",
"surname": "Doe"
}, {
"name": "Jane",
"surname": null,
"active": true
}]
}
En la siguiente tabla se muestran algunos ejemplos de expresiones de ruta de acceso.
Expresión de ruta de acceso | Valor |
---|---|
$.people[0].name | John |
$.people[1] | { "name": "Jane", "surname": null, "active": true } |
$.people[1].surname | nulo |
$ | { "people": [ { "name": "John", "surname": "Doe" }, { "name": "Jane", "surname": null, "active": true } ] } |
Si el texto JSON contiene propiedades duplicadas (por ejemplo, dos claves con el mismo nombre en el mismo nivel), las funciones JSON_VALUE y JSON_QUERY devuelven solo el primer valor que coincida con la ruta de acceso. Para analizar un objeto JSON que contiene claves duplicadas y devuelve todos los valores, use OPENJSON, como se muestra en el siguiente ejemplo.
DECLARE @json NVARCHAR(MAX);
SET @json=N'{"person":{"info":{"name":"John", "name":"Jack"}}}';
SELECT value
FROM OPENJSON(@json,'$.person.info');
Nota
Es posible que algunos de los vínculos de vídeo de esta sección no funcionen en este momento. Microsoft está migrando contenido que anteriormente estaba en Channel 9 a una nueva plataforma. Actualizaremos los vínculos a medida que los vídeos se migren a la nueva plataforma.
Para obtener una introducción visual a la compatibilidad integrada de JSON en SQL Server y Azure SQL Database, vea los siguientes vídeos:
OPENJSON (Transact-SQL)
JSON_VALUE (Transact-SQL)
JSON_QUERY (Transact-SQL)
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyCursos
Ruta de aprendizaje
Introducción a las consultas con Transact-SQL - Training
Introducción a las consultas con Transact-SQL
Certificación
Microsoft Certified: Azure Cosmos DB Developer Specialty - Certifications
Escribe consultas eficaces, crea directivas de indexación, administra y aprovisiona recursos en la API de SQL y el SDK con Microsoft Azure Cosmos DB.
Documentación
JSON_QUERY (Transact-SQL) - SQL Server
JSON_QUERY extrae un objeto o una matriz de una cadena JSON.
JSON_ARRAY (Transact-SQL) - SQL Server
JSON_ARRAY construye texto de matriz JSON a partir de cero o más expresiones.
Validación, consulta y cambio de datos JSON con funciones integradas - SQL Server
Validación, consulta y cambio de datos JSON con funciones integradas (SQL Server)