Clique no banner para conhecer e adquirir o meu treinamento de Bancos de Dados no Azure

Como utilizar JSON no SQL Server 2008, 2012 e 2014 – Lendo strings JSON, importando para o banco e exportando para XML

Post Views 15,196 views
Reading time 10 minutes

Olá Pessoal,
Boa tarde.

Neste post irei demonstrar como ler strings JSON e converter para uma tabela e converter os dados de uma tabela para JSON e XML utilizando apenas T-SQL. Essa dica é bem útil quando você está utilizando uma versão anterior ao SQL Server 2016 e precisa ler strings Json.

Caso você esteja utilizando o SQL Server 2016 ou superior, saiba que já existe suporte nativo à JSON. Para saber como funciona esse suporte nativo, leia o meu post SQL Server 2016 – Utilizando o suporte nativo a JSON (JSON_VALUE, JSON_QUERY, OPENJSON, FOR JSON, ISJSON, JSON_MODIFY).

O que é JSON

JSON, um acrônimo para “JavaScript Object Notation”, é um formato leve para intercâmbio de dados computacionais. A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma alternativa para XML em AJAX.

Uma das vantagens reivindicadas de JSON sobre XML como um formato para intercâmbio de dados neste contexto, é o fato de ser muito mais fácil escrever um analisador JSON. Em JavaScript mesmo, JSON pode ser analisado trivialmente usando a função eval(). Isto foi importante para a aceitação de JSON dentro da comunidade AJAX devido a presença deste recurso de JavaScript em todos os navegadores web atuais.

Na prática, os argumentos a respeito da facilidade de desenvolvimento e desempenho do analisador são raramente relevados devido aos interesses de segurança no uso de eval() e a crescente integração de processamento XML nos navegadores web modernos. Por esta razão JSON é tipicamente usado em ambientes onde o tamanho do fluxo de dados entre o cliente e o servidor é de supra importância (daí seu uso por Google, Yahoo, etc., os quais servem milhões de usuários), onde a fonte dos dados pode ser explicitamente confiável, e onde a perda dos recursos de processamento XSLT no lado cliente para manipulação de dados ou geração da interface, não é uma consideração.

Um ótimo uso para a utilização de JSON no SQL Server e o que me motivou a fazer este post, é para a integração e consumo de dados de webservices que utilizam JSON para estabelecer a comunicação com o cliente consumidor da informação.

Lendo uma string JSON

Com a utilização da função que vou postar abaixo, criada pelo Phil Factor, é possível ler strings JSON facilmente, conforme o exemplo abaixo:

JSON1.1

Implementando a função:
Visualizar código-fonte

Criando uma string JSON a partir do banco

Como o uso dessa função, você pode criar uma string JSON a partir de uma tabela em um formato específico. Para isso, precisamos criar esse tipo de dado antes de utilizar a nossa função.

Pré-Requisito – Criando a função para tratar os dados:

Pré-Requisito – Criando o tipo JSON:

Implementando a função:
Visualizar código-fonte

Criando um XML a partir de um JSON

Com o uso da função fncJSON_To_XML, pode-se criar um XML a partir de uma string JSON passada para a função, assim com o exemplo abaixo:
JSON2

JSON3

JSON4

JSON5

Caso você necessite de ajuda para ler e manipular dados em objetos XML utilizando o SQL Server, aprenda como fazer isso lendo o meu artigo SQL Server – Como ler, importar e exportar dados de arquivos XML.

Implementando a função:
Visualizar código-fonte

Solução alternativa para converter uma string JSON para XML

Com a função abaixo (escrita pelo Daniel Muchmacher), você poderá facilmente converter strings Json para um documento XML, onde você poderá utilizar o SQL Server para navegador entre os nós e ler os dados conforme sua necessidade. Essa função é muito útil para instâncias que estão utilizando uma versão anterior ao SQL Server 2016 (sem suporte nativo a JSON), mas você precisa utilizar esse recurso.

Caso você necessite de ajuda para ler e manipular dados em objetos XML utilizando o SQL Server, aprenda como fazer isso lendo o meu artigo SQL Server – Como ler, importar e exportar dados de arquivos XML.

Exemplo:

Result:

Código-fonte da função

É isso aí.
Até o próximo post!