Serializando objetos em JSON: Neste artigo serão apresentadas algumas formas para se realizar a serialização e deserialização de objetos em JSON (JavaScript Object Notation) no .NET Framework, com exemplos na linguagem C#. Serão apresentadas as classes nativas DataContractJsonSerializer, JavaScriptSerlializer e em seguida a biblioteca externa Json.NET, possibilitando a comparação entre estas e facilitando a escolha daquela que melhor atende a cada necessidade.
Em que situação este tema é útil: O tema abordado neste artigo é útil no dia a dia de todo desenvolvedor que necessita armazenar ou transferir dados entre aplicações utilizando um dos formatos que mais tem ganhado espaço nos últimos anos, o JSON. Este conteúdo também é útil para aqueles que desejam conhecer as opções oferecidas pelo .NET Framework para fazer a serialização de objetos nesse formato de dados, de forma a estar pronto para escolher entre elas e utilizá-las quando for necessário.
O rápido avanço dos softwares e o aumento da sua importância nos processos diários de diversos setores da sociedade têm feito ocorrer grandes modificações no perfil das aplicações em geral. Programas que antes se resumiam a editores de texto que mal exibiam na tela o conteúdo digitado e o enviavam para uma impressora matricial, agora precisam atender a exigências e seguir tendências que mudam quase que diariamente.
As aplicações atuais precisam estar aptas a trabalhar com grandes volumes de dados e, além disso, importar e exportar informações de diversos tipos e fontes. Os sistemas devem ser capazes de interagir uns com os outros e realizar a troca de informações, bem como armazená-las de forma segura e adequada à finalidade a que se destinam. Porém, não existe uma ferramenta única para desenvolvimento de software, pelo contrário, são várias as plataformas e linguagens já existentes e que não param de surgir e se renovar. Também não há uma regra universal que dite como as informações devem ser tratadas e armazenadas, o que por muito tempo fez com que cada aplicação trabalhasse de maneira totalmente individual e manipulasse seus dados de uma forma que dependia apenas dos desenvolvedores.
Com o passar do tempo, a necessidade de que as informações geradas por um software pudessem ser aproveitadas por outro fez com que novas estratégias fossem desenvolvidas para atender as exigências do mercado. Os grandes sistemas gerenciadores de bancos de dados têm muito em comum entre si, como a forma de armazenar os dados em tabelas, então uma solução seria que todo software, independente da linguagem utilizada em seu desenvolvimento, pudesse acessar todo tipo de banco de dados. Hoje isso quase é possível, pois a maioria dos SGBDs comerciais disponibilizam provedores para serem acessados a partir das principais linguagens de programação. Mas é fácil perceber que essa alternativa não é tão viável, pois cada aplicação possui seu banco de dados, com um modelo totalmente planejado para atender às necessidades que motivaram sua criação. Logo, não é possível (ou viável) que um sistema, para obter informações provenientes de outro, precise acessar diretamente a base de dados principal deste segundo.
Para resolver este conflito, formatos de representação de dados foram propostos e passaram a ser utilizados como padrões, seguidos por todos aqueles que os desejassem aderir a eles. Dentre estas soluções, destaca-se a XML (Extensible Markup Language, ou Linguagem de Marcação Estendida), uma linguagem reconhecida pela W3C (BOX 1) que tem como objetivo representar e organizar dados de forma hierárquica. Essa linguagem se difundiu rapidamente e passou a ser usada como principal forma de intercâmbio de informações entre aplicações, principalmente através da internet. Com sua popularização, as diversas linguagens de programação passaram a suportar diretamente a manipulação de dados nesse formato, o que permitiu que um arquivo XML gerado por uma aplicação pudesse ser facilmente lido por outra, desenvolvida em plataforma diferente, pois o que prevalecia eram as regras de estruturação dos dados definidos pelo padrão XML.
A XML pode ser utilizada para representar desde dados simples, como textos e valores numéricos, até coleções de objetos complexos, com várias propriedades. Na Listagem 1 vemos um exemplo de um objeto Venda, com suas propriedades e itens, representado em formato XML.
<?xml version="1.0" encoding="utf-8"?> <Venda> <Data>24/07/2013</Data> <Valor>100,00</Valor> <Cupom>102030</Cupom> <Itens> <Item> <Codigo>123</Codigo> <Quantidade>1</Quantidade> <Subtotal>30,00</Subtotal> </Item> <Item> <Codigo>456</Codigo> <Quantidade>2</Quantidade> <Subtotal>70,00</Subtotal> </Item> </Itens> </Venda>
Notamos que os dados são organizados de forma hierárquica e utilizando os sinais < e >. Maiores detalhes sobre a linguagem XML fogem do objetivo deste artigo, mas é importante conhecer, ainda que de forma básica, o formato que atualmente é o mais utilizado para a troca de informações entre aplicações. Tendo esse entendimento, será mais fácil compreender o formato concorrente e que é foco deste artigo, o JSON.
O W3C (World Wide Web Consortium) é uma comunidade fundada por Tim Berners-Lee, o criador da Web, e formada por diversos membros como universidades e empresas privadas, que cooperam para o desenvolvimento de padrões utilizados na web, como as linguagens HTML e CSS.
O formato JSON
JSON (em inglês JavaScript Object Notation) é um formato para troca de dados baseado na sintaxe de representação de objetos da linguagem de script JavaScript. Apesar do nome e de ser derivado dessa linguagem, o uso do formato JSON não requer necessariamente a linguagem JavaScript, pelo contrário, a maioria das linguagens de programação atuais oferecem meios para se trabalhar com esse formato.
A sintaxe JSON é bastante simples e muito conhecida por programadores que utilizam linguagens cuja sintaxe deriva de C, como C++, C# e Java. Isso faz com que este formato seja de fácil leitura por humanos e de fácil interpretação pelas máquinas, tornando-o bastante adequado a operações de troca de dados entre aplicações, principalmente na internet. Por este motivo, JSON se apresenta como um concorrente da linguagem XML, com maior expressividade no meio web, devido à facilidade de manipulação através de JavaScript e melhor desempenho.
Para representar dados em JSON deve-se seguir algumas regras, são elas:
...Confira outros conteúdos:
Black November
Desconto exclusivo para as primeiras 200 matrículas!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,00
Total: R$ 708,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 64,00 /mês
Total: R$ 768,00
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.