Press "Enter" to skip to content

SQL Server 2016 Generare un JSON da una query

Un mini appunto perché non è una cosa che uso spesso, ma potrebbero esservi degli ambiti in cui potrebbe tornare utile per tanto lo scrivo qui così non lo dimentico.
SQL Server (in questo caso la prova l’ho fatta su 2016) ha una funzione che genera un Json per il risultato di una query.
Pertanto, se si volesse ottenere da SQL Server un array di name value objects rappresentante il risultato della query per usarlo poi
per qualsiasi scopo, ecco come si fa.

SELECT [IDState]
      ,[StateDescription]
  FROM [dbo].[TbStates]
  FOR JSON AUTO

Il risultato della query è un unica riga in un unico campo contenente il seguente Json

 [{"IDState":"Cancelled","StateDescription":"The object has been Cancelled "}
,{"IDState":"Confirmed","StateDescription":"The object is confirmed, but not yet started"}
,{"IDState":"Done","StateDescription":"The object is Done"}
,{"IDState":"New","StateDescription":"New object"}
,{"IDState":"PartiallyCompleted"
,"StateDescription":"The object is Partially Completed (Running)"}]

Il Json non è prettified quindi non ha ne accapo ne indentazioni.