Serializando JSon com JIL

Fala pessoal, tudo bem!

Hoje vou falar sobre uma biblioteca muito legal para serializar e deserializar objetos Json, pois este tipo de dados está cada vez mais comum com o advento das APIs web.

Um exemplo de dado em Json é o próprio WebAPI que faz parte do Asp.Net MVC, pois ele retorna basicamente dados em Json. Então qual o problema a ser resolvido ?

Você recebe um dado em Json, que é basicamente um texto, e precisa manipular seu conteúdo através de uma classe! E é aí que entra o JIL !!!

A biblioteca JIL, criada pela equipe do site StackExchange desempenha este trabalho com muita rapidez e simplicidade! Esta biblioteca está disponível através do NuGet.

Vamos codificar para ver!

Vou criar um projeto bem simples do tipo Console Application no Visual Studio 2015, mas você pode usar outras versões do Visual Studio também:

image_thumb1

E vamos instalar o JIL usando o NuGet Package Manager Console (Tools/NuGet Packager Manager/Packager Manager Console):

image_thumb3

Vamos agora criar um classe e trabalhar com a serialização e deserialização:

   1: public class Cliente

   2: {

   3:         public int ID { get; set; }

   4:         public string Nome { get; set; }

   5:         public string Cidade { get; set; }

   6: }

Agora vamos trabalhar com o JIL, veja como é simples:

Vamos criar um objeto do tipo cliente e serializar:

   1: var cli = new Cliente() { ID = 1, Nome = "Carlos", Cidade = "CPP" };

   2:  

   3: var json = JSON.Serialize<Cliente>(cli);

   4:  

   5: Console.WriteLine(json);

Criamos o objeto e passamos como parâmetro para a classe JSON.Serialize()

O retorno é este:

image

Agora vamos fazer o inverso, pegar uma string Json e converter para um objeto:

   1: var jsonData = "{\"ID\":1,\"Nome\":\"João\",\"Cidade\":\"SP\"}";

   2: var cliente = JSON.Deserialize<Cliente>(jsonData);

   3:  

   4: Console.WriteLine("ID: {0}\nNome: {1}\nCidade: {2}\n", cliente.ID, cliente.Nome, cliente.Cidade);

Temos o dado jsonData, que poderia ter vindo de qualquer serviço na web, e depois chamamos o método JSON.Deserialize(). Pronto, temos nosso objeto cliente!

Veja o retorno:

image

Veja o código todo aqui:

   1: using Jil;

   2: using System;

   3:  

   4: namespace ConsoleApplication2

   5: {

   6:     class Program

   7:     {

   8:         static void Main(string[] args)

   9:         {

  10:             var cli = new Cliente() { ID = 1, Nome = "Carlos", Cidade = "CPP" };

  11:             var json = JSON.Serialize<Cliente>(cli);

  12:             Console.WriteLine(json);

  13:  

  14:             var jsonData = "{\"ID\":1,\"Nome\":\"João\",\"Cidade\":\"SP\"}";

  15:             var cliente = JSON.Deserialize<Cliente>(jsonData);

  16:  

  17:             Console.WriteLine("ID: {0}\nNome: {1}\nCidade: {2}\n", cliente.ID, cliente.Nome, cliente.Cidade);

  18:  

  19:  

  20:         }

  21:     }

  22:  

  23:     public class Cliente

  24:     {

  25:         public int ID { get; set; }

  26:         public string Nome { get; set; }

  27:         public string Cidade { get; set; }

  28:     }

  29: }


Abraços e até a próxima,

Carlos dos Santos.

3 Comments


  1. Fala Carlao, tudo tranquilo?

    Parabéns pelo artigo! Você já utilizou o Newtonsoft para serializar/deserializar JSON? Saberia dizer as diferenças entre o Newtonsoft e o JIL?

    Abraço!
    André Lima

    Reply

    1. Fala André, blz!

      Usamos o Newtonsoft sim, o JIL é mais rápido!

      []s,
      Carlos.

      Reply

Leave a Reply

Your email address will not be published. Required fields are marked *

Anti-spam: complete the taskWordPress CAPTCHA


This blog is kept spam free by WP-SpamFree.