Vamos revisar a serialização da seção anterior: converte um objeto de entidade em uma string JSON.
Serialização
WebInfo webInfo = new WebInfo();
webInfo.age = 4;
webInfo.webname = "FoxDevelop";
webInfo.website = "foxdevelop.com";
webInfo.students = new Person[] { new Person { name = "Tom" }, new Person { name = "Jim" } };
// Converte o objeto webinfo para string JSON
StringWriter sw = new StringWriter();
JsonWriter writer = new JsonWriter(sw);
new JsonSerializer().Serialize(writer, webInfo);
string json = sw.GetStringBuilder().ToString();Code language: JavaScript (javascript)
Resultado JSON gerado
{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,"students":[{"name":"Zhang San"},{"name":"Li Si"}]}Code language: JSON / JSON with Comments (json)
Desserialização
Converter string JSON para objeto de entidade
Método 1 (escrita com Reader de baixo nível)
WebInfo model = new JsonSerializer()
.Deserialize(new JsonTextReader(new StringReader(json)), typeof(WebInfo)) as WebInfo;Code language: JavaScript (javascript)
Método 2 (sintaxe genérica concisa, Newtonsoft.Json)
WebInfo model = JavaScriptConvert.DeserializeObject<WebInfo>(json);Code language: HTML, XML (xml)
new JsonSerializer().Deserialize(new JsonTextReader(new StringReader(jsonString)), typeof(NomeDaClasse) as NomeDaClasse
Com esses métodos conseguimos desserializar um JSON em objeto de entidade.
Também pode ser usado dessa forma
JavaScriptConvert.DeserializeObject<NodeInfo>(jsonText)
Serialização e desserialização
Previous: Apresentação