Um dos melhores formatos para transmitir dados na web é o Json (JavaScript Object Notation), já que é nativo do JavaScript e possui menor overhead de separadores que em um XML por exemplo, alem disso, é facilmente tratado por funções JS.
Cada vez mais a maioria de projetos utiliza JSON em suas API’s, integrações ou em outras comunicações.
A idéia deste post é demonstrar algumas facilidades e maneiras de trabalhar com JSON utilizando dynamic e C#.
Para isso precisaremos instalar e referenciar a namespace do System.Json, que pode ser incluida através de Nuget:
(Install-Package System.Json)
Criando JSON
Com o dynamic (http://msdn.microsoft.com/en-us/library/system.dynamic.dynamicobject.aspx) é possivel extender a classe JsonObject (http://msdn.microsoft.com/en-us/library/system.json.jsonobject(v=vs.110).aspx) para criarmos com muita facilidade nosso objetos JSON.
Ex:
dynamic usuario = new JsonObject(); usuario.nome = "Rodolfo"; usuario.sexo = "m"; usuario.idade = 22; dynamic certificacoes = new JsonArray(); dynamic certificacao1 = new JsonObject(); certificacao1.titulo = "MCPD"; certificacao1.id = 1; dynamic certificacao2 = new JsonObject(); certificacao2.titulo = "MCTS"; certificacao2.id = 2; dynamic certificacao3 = new JsonObject(); certificacao3.titulo = "MCP"; certificacao3.id = 3; certificacoes.Add(certificacao1); certificacoes.Add(certificacao2); certificacoes.Add(certificacao3); usuario.certificacoes = certificacoes; Console.WriteLine(usuario.ToString());
Terá criado a seguinte string
{"nome":"Rodolfo","sexo":"m","idade":22,"certificacoes":
[{"titulo":"MCPD","id":1},{"titulo":"MCTS","id":2},{"titulo":"MCP","id":3}]}
Lendo strings com JSON
Outra função fundamental é converter strings de JSON em objetos que podem ser trabalhados, para isso, neste exemplo eu utilizarei o dynamic e o JsonValue (http://msdn.microsoft.com/en-us/library/system.json.jsonvalue(v=vs.110).aspx)
Ex:
var jsonString = "{\"nome\":\"Rodolfo Fadino\",\"idade\":22, \"sexo\":\"M\"}";
dynamic jsonTratado = JsonValue.Parse(jsonString);
string Nome = jsonTratado.nome;
char Sexo = jsonTratado.sexo;
int idade = jsonTratado.idade;
Abaixo seguem os link’s da MSDN
http://msdn.microsoft.com/en-us/library/system.json(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/system.dynamic.aspx
Bom espero que este post tenha sido util,
estou a disposição para dúvidas, críticas e sugestões
abs
Rodolfo


