Soporte de JSON para SQL Server
JSON es sinónimo de JavaScript Object Notation. Fue creado por Douglas Crockford, un famoso programador informático y empresario.
JSON XML está reemplazando en muchos lugares para el intercambio de datos. Fue diseñado en primer lugar para JavaScript, pero ahora es una lengua independiente. No hay planes de suspender la compatibilidad con XML en SQL Server, pero la adición de JSON en SQL Server proporciona una alternativa.
Ahora se admite en JavaScript, Perl, C ++, ABAP, Ada, AdvPL, ASP, AWK, Bash, BlizMax, C, C #, Ciao, Clojure, Cobol, ColdFusion, Delphi, Java, Mathlab, Net.Data, Objective C, Photoshop, PHP, Python, Ruby, etc y ahora en SQL Server 2016 y versiones futuras.
JSON es fácil de leer en su estado natural y también puede analizar fácilmente para lenguajes de programación. Es muy común en el Ajax y es cada vez más común en otros lenguajes de programación.
Soporte de JSON en SQL Server
Con el fin de iniciar SSMS, abrir y ejecutar la siguiente consulta (asegúrese de que está utilizando SQL 2016 CTP 2.2 o posterior):
1. Vamos a empezar con una simple consulta en T-SQL sin JSON.
Select CompanyName, Country from Customers go
Compruebe los resultados:
2. Ahora comparar los resultados con la consulta utilizando JSON AUTO.
Select CompanyName, Country
from Customers
for json auto
go
Compruebe el resultado:
Como se puede ver, el resultado tiene la siguiente sintaxis:
[{ «Columna 1 Nombre»: «Columna1 Valor», «Columna 2 Nombre»: «Valor Columna2», «Columna 3 Nombre»: «Columna3 Valor» …..}, { «Columna 1 Nombre fila2″: » column1 Valor fila2 «} ….]
Tiene el nombre del objeto y al lado del valor. Utiliza llaves {} para separar cada fila. Los dos puntos (:) se utilizan para separar el nombre de objeto a partir del valor del objeto. La coma (,) se utiliza para separar las columnas.
Json Path
Otra alternativa es JSON PATH. AUTO se utiliza para dar formato a los resultados JSON y utiliza el orden predeterminado.
Si está familiarizado con XML en SQL Server, se dará cuenta de que es muy similar. Path ofrece más control en el formato de los archivos.
Select CompanyName, Country
from Customers
for json path
go
Compruebe el resultado:
Si no está utilizando tablas, PATH es su única opción. El siguiente ejemplo se producirá un error:
Declare @val1 int = 1, @val2 int = 2 SELECT @val1 AS valor1, @val2 AS valor2 FOR JSON AUTO
Si ejecuta la consulta anterior, recibirá el mensaje de error siguiente:
Msg 13600, nivel 16, estado 1, línea 2 PARA AUTO JSON requiere al menos una tabla para generar objetos JSON. El uso para JSON PATH o añadir una cláusula FROM con un nombre de tabla.
Sin embargo, si ejecuta la misma consulta con la cláusula PATH, que funcionará correctamente.
Declare @val1 int = 1, @val2 int = 2 SELECT @val1 AS valor1, @val2 AS valor2 FOR JSON PATH
Los resultados muestran con ser los siguientes:
También puede utilizar la opción ROOT como se muestra a continuación.