Published on

May 19, 2020

Explorando la manipulación de JSON en SQL Server

JSON (JavaScript Object Notation) se ha convertido en un formato de datos popular para almacenar e intercambiar datos debido a su simplicidad y flexibilidad. En SQL Server, la función OPENJSON juega un papel crucial en la manipulación de documentos JSON. En este artículo, exploraremos cómo utilizar OPENJSON con esquemas predeterminados y explícitos, así como cómo combinar ambos.

De forma predeterminada, OPENJSON devuelve metadatos sobre el documento JSON. Sin embargo, también podemos proporcionar un esquema explícito utilizando la cláusula WITH y una RUTA para especificar los datos que deseamos. Hasta ahora, solo hemos utilizado el esquema predeterminado o un esquema explícito, pero no ambos. Para lograr esto, necesitamos utilizar el operador APPLY.

OPENJSON es en realidad una función de tabla que analiza JSON en un esquema explícito o el esquema predeterminado. Al utilizar CROSS APPLY, podemos combinar tanto los esquemas predeterminados como los explícitos. Veamos un ejemplo:

DECLARE @json NVARCHAR(MAX) =
N'
{
    "Propiedad de configuración": {
      "Nombre de configuración": "intervalo de recuperación (min)",
      "Valor": 0,
      "mínimo": 0,
      "máximo": 32767,
      "valor_en_uso": 0,
      "descripción": "Intervalo máximo de recuperación en minutos",
      "es_dinámico": true,
      "es_avanzado": true
    }
}
';

SELECT 
 DS. ,DS.[value]
,DS.[type]
,ES.[Nombre de configuración]
,ES.[Valor]
,ES.[mínimo]
,ES.[máximo]
,ES.[valor_en_uso]
,ES.[descripción]
,ES.[es_dinámico]
,ES.[es_avanzado] 
FROM  
     OPENJSON(@json)  AS DS
CROSS APPLY
     OPENJSON(DS.[value])
WITH
(
 [Nombre de configuración]  NVARCHAR(35)
,[Valor]               NVARCHAR(35)
,[mínimo]             NVARCHAR(35)
,[máximo]             NVARCHAR(35)
,[valor_en_uso]        NVARCHAR(35)
,[descripción]         NVARCHAR(35)
,[es_dinámico]          NVARCHAR(35)
,[es_avanzado]         NVARCHAR(35)
) AS ES

Esta técnica es particularmente útil cuando necesitamos profundizar en subconjuntos y objetos dentro de un documento JSON. Al utilizar alias diferentes para los esquemas predeterminados y explícitos, podemos recuperar datos de ambos esquemas. En el ejemplo anterior, accedimos al elemento llamado “valor” de ambos esquemas proporcionando un alias.

Aprovechando el poder de OPENJSON y APPLY, podemos trabajar de manera eficiente con estructuras JSON complejas en SQL Server. Esto abre un amplio abanico de posibilidades para manejar datos JSON dentro de nuestra base de datos.

Gracias por acompañarnos en este viaje de SQL Server JSON. Estén atentos para más temas emocionantes en un futuro cercano. ¡Que tengan un gran día!

Saludos,

Marty

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.