Funcion JSON_MODIFY() en SQL Server

Hola compañeros,

La función JSON_MODIFY() en SQL Server se utiliza para actualizar valores específicos dentro de un valor JSON. Esta función toma tres argumentos: el valor JSON al que se desea hacer la modificación, el camino al fragmento que se desea actualizar y el nuevo valor.

Por ejemplo, si tenemos una tabla clientes con una columna datos de tipo JSON que contiene información sobre los clientes, como su nombre, dirección y teléfono, y deseamos actualizar la dirección de un cliente específico, podemos utilizar JSON_MODIFY() de la siguiente manera:

En este caso se esta utilizando JSON_MODIFY para actualizar la dirección del cliente con id 1.

Además de actualizar valores existentes, también podemos utilizar JSON_MODIFY() para agregar nuevas propiedades a un valor JSON. Por ejemplo, si queremos agregar un correo electrónico a la información de un cliente específico, podemos utilizar la siguiente consulta:

Es importante tener en cuenta que, al utilizar JSON_MODIFY() se sobreescriben los valores existentes, si deseas agregar una propiedad y no sobreescribir alguna existente, es recomendable hacer uso de la función JSON_MERGEPATCH()

En resumen, la función JSON_MODIFY() es una herramienta útil para actualizar valores específicos dentro de un valor JSON en SQL Server. Con su uso se pueden realizar actualizaciones precisas y específicas en los datos almacenados en formato JSON en SQL Server.

Funcion JSON_QUERY() en SQL Server

Hola a tod@s,

La función JSON_QUERY() en SQL Server se utiliza para extraer un fragmento específico de un valor JSON en forma de texto. A diferencia de JSON_VALUE(), que solo devuelve el valor de una propiedad específica, JSON_QUERY() puede extraer un sub-árbol completo de un valor JSON.

Para utilizar JSON_QUERY(), se le proporciona el valor JSON como primer argumento y el camino al fragmento deseado como segundo argumento. El camino al fragmento se especifica utilizando el formato de notación de punto (.) para acceder a las propiedades del objeto JSON.

Por ejemplo, si tenemos una tabla clientes con una columna datos de tipo JSON que contiene información sobre los clientes, como su nombre, dirección y teléfono, podríamos utilizar JSON_QUERY() para extraer solo la información de contacto de cada cliente:

n este caso se esta utilizando JSON_QUERY para extraer solo la dirección y el teléfono de cada cliente y seleccionarlo en la tabla final.

Además de JSON_QUERY(), también podemos utilizar la función JSON_EXISTS() para verificar si un fragmento específico existe en un valor JSON. Esta función toma dos argumentos: el valor JSON y el camino al fragmento que se desea verificar. Por ejemplo, si queremos verificar si un cliente tiene un número de teléfono específico, podemos utilizar la siguiente consulta:

En resumen, la función JSON_QUERY() es una herramienta útil para extraer fragmentos específicos de un valor JSON en SQL Server, mientras que JSON_EXISTS() se utiliza para verificar si un fragmento específico existe en un valor JSON. Con el uso de ambas funciones, se pueden crear consultas más específicas y precisas sobre los datos almacenados en formato JSON en SQL Server.

Espero que os valga, saludos..

Campo JSON en SQL Server

Hola compañeros !!

SQL Server 2016 y versiones posteriores incluyen un nuevo tipo de datos JSON para almacenar y manejar datos en formato JSON. Para crear una columna de tipo JSON, se utiliza el tipo de datos nvarchar(max) con la especificación FOR JSON en la cláusula AS. Por ejemplo, para crear una tabla con una columna de tipo JSON se utilizaría el siguiente comando SQL:

Una vez creada la tabla, se pueden insertar datos en formato JSON utilizando la cláusula VALUES y encerrando el valor JSON en comillas dobles. Por ejemplo:

Para acceder a los valores contenidos en un campo JSON se utiliza la función JSON_VALUE(). Esta función toma dos argumentos: el primer argumento es el valor JSON y el segundo argumento es el camino a la propiedad específica que se desea obtener. Por ejemplo, para obtener el valor de la propiedad “nombre” en el ejemplo anterior se utilizaría la siguiente consulta SQL:

Además de JSON_VALUE(), existen otras funciones para trabajar con datos JSON en SQL Server, como JSON_QUERY(), JSON_MODIFY() y ISJSON(). Es importante tener en cuenta que el uso de estas funciones requiere un conocimiento previo del formato y estructura de los datos JSON que se están manejando.

Deserializar una cadena JSON en una clase

Hola a tod@s,

En el dia de hoy, hoy voy a traer un pequeño codigo para deserializar una cadena con formato JSON en una clase, como vereis es muy sencillo.

Lo primero de todo, tenemos instalar un paquete llamado Newtonsoft, sino sabes como hacerlo puedes verlo aqui, tras instalar el paquete NuGet hay que importar los espacios de nombre:

Necesitaremos disponer de una clase con la estructura correcta, hay que tener en cuenta que los nombres de las variables deben de coincidir con las de la cadena JSON, ya que sino no hara nada.

Por otro lado, generamos una clase en la que pondremos el nombre que esta dentro del JSON, que nos indica que es un conjunto de Personas, lo mismo que antes debe de tener el nombre exacto para que parchee las propiedades.

La cadena de JSON que nos llega es la siguiente, estaria almacenada en una variable llamada por ejemplo jsonRetorno.

Como veis, la estructura es la misma que la clase, pero podria tener algun campo que en la clase no este, y lo que hara es omitirlo. La linea de codigo necesaria para poder deserializar es la siguiente:

Dentro del objeto oPersona, tendremos dos clases que coinciden con las del JSON.

Espero que os valga, tambien podeis ver como serializar una clase en una cadena Json, en este post.

Saludos,

Serializar una clase en una cadena JSON

Hola a tod@s,

En el dia de hoy, hoy voy a traer un pequeño codigo para serializar una clase en una cadena con formato JSON, para poder usarla en servicios web o donde lo necesitemos, como vereis es muy sencillo.

Lo primero de todo, tenemos instalar un paquete llamado Newtonsoft, sino sabes como hacerlo puedes verlo aqui, tras instalar el paquete NuGet hay que importar los espacios de nombre:

Despues necesitamos tener los valores en una clase, para poder serializarla:

Vamos a rellenar un array con nuestra clase de Personas, en este caso vamos a crear 2 elementos:

Por ultimo vamos a llamar al siguiente metodo para que nos serialize:

El resultado de la variable json seria el siguiente:

Si quieres mas informacion acerca de Newtonsoft, visita este enlace.

Saludos