Como trabalhar de forma simples com objetos JSON no server side?
Procurando uma resposta para esta pergunta encontrei um projeto que tem como fruto uma biblioteca em .NET que manipula de forma simples dados em formato de JSON,
o projeto se chama Json.NET e pode ser baixado em http://www.codeplex.com/Json.
Suas principais caracteristicas são um serializador JSON flexível para converter rapidamente. NET para JSON e de volta, e LINQ to JSON para leitura e escrita JSON.
Para isso primeiramente devemos adicionar referência a dll do projeto, então podemos partir para alguns exemplos:
Serializando
- Pessoa pessoa = new Pessoa { Nome = “Rodolfo”,Sobrenome= “Fadino” ,Idade = 20 };
- string jsonpessoa = JsonConvert.SerializeObject(pessoa, Formatting.Indented);
O resultado exibido será uma string:
{ “Nome”: “Rodolfo”, “Sobrenome”: “Fadino”, “Idade”: 20 }
- List<Pessoa> pessoas = new List<Pessoa>();
- Pessoa rodolfo = new Pessoa { Nome = “Rodolfo”,Idade = 20 };
- Pessoa alexandre = new Pessoa { Nome = “Alexandre”, Idade = 21 };
- Pessoa eduardo = new Pessoa { Nome = “Eduardo”, Idade = 22 };
- Pessoa taura = new Pessoa { Nome = “Taurã”, Idade = 23 };
- pessoas.Add(rodolfo);
- pessoas.Add(alexandre);
- pessoas.Add(eduardo);
- pessoas.Add(taura);
- string jsonpessoas = JsonConvert.SerializeObject(pessoas, Formatting.Indented);
- Pessoa pessoa = new Pessoa { Nome = “Rodolfo”,Sobrenome= “Fadino” ,Idade = 20 };
- string jsonpessoa = JsonConvert.SerializeObject(pessoa, Formatting.Indented);
- lblJson.Text = jsonpessoa;
O resuldao exibido será uma string:
[ { "Nome": "Rodolfo", "Idade": 20 }, { "Nome": "Alexandre", "Idade": 21 }, { "Nome": "Eduardo", "Idade": 22 }, { "Nome": "Taurã", "Idade": 23 } ]
Agora podemos passar para o processo inverso, através de uma string no formato de um JSON iremos utilizar Linq to JSON
Linq to JSON
- string json = @”{
- “”Nome”": “”Rodolfo”",
- “”Idade”": 20,
- “”Certificacoes”": [
- ""MCP"",
- ""MCTS"",
- ""MCPD""
- ]
- }”;
- JObject objRodolfo = JObject.Parse(json);
- string Nome = (string)objRodolfo["Nome"];
- //Rodolfo
- JArray certificacoes = (JArray)objRodolfo["Certificacoes"];
- //[ "MCP", "MCTS", "MCPD" ]
- string certificacao1 = (string)certificacoes[1];
- //MCTS
Outra coisa que podemos fazer são consultas Linq
- JObject objPessoas = JObject.Parse(@”{
- “”Pessoas”" :[
- {""Nome"":""Nome1"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""},
- {""Nome"":""Nome2"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""},
- {""Nome"":""Nome3"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""},
- {""Nome"":""Nome4"",
- ""Idade"":20,
- ""Profissao"":""Desenvolvedor""}
- ]}”);
- IList<string> pessoas = objPessoas["Pessoas"].Select(p => (string)p["Nome"]).ToList();
- lblJson.Text = pessoas.First();
- //Nome1
Obrigado
qualquer duvida estou a disposição.
Rodolfo
Ótimo post amigo, muito legal.! parabens
Muito interessante… Parabens pelo site. =]
Ótimo post amigo, muito legal.! parabens