Apresentação

1. Apresentação do Newtonsoft.Json

O Newtonsoft.Json (conhecido como Json.NET) é um componente open‑source para serialização e desserialização JSON no ecossistema .NET.

  • A primeira versão, Json.NET 1.0.1, foi lançada em 2006; as versões atuais já passam da 10.
  • Inicialmente compatível com o .NET 2.0, funciona com praticamente todos os frameworks .NET (.NET Framework, .NET Core, .NET 5+).
  • Assembly: Newtonsoft.Json.dll, instalado por meio do NuGet.
  • Seu código‑fonte ficava hospedado no CodePlex, mas foi migrado para o GitHub; é amplamente utilizado em projetos empresariais.

2. O que é JSON

JSON (JavaScript Object Notation, notação de objetos JavaScript)

  • Formato textual leve para troca de dados, independente de linguagem e não exclusivo do JavaScript.
  • Estruturas principais: pares chave‑valor key:value; suporta aninhamento de objetos {} e arrays [].
{"webname":"FoxDevelop","website":"foxdevelop.com","age":4,"students":[{"name":"tom"},{"name":"bill"}]}Code language: C# (cs)

II. Definição das classes de entidade (correspondentes à estrutura JSON)

Person.cs (objeto aluno)
namespace NewtonsoftDemo
{
    public class Person
    {
        public string name { set; get; }
    }
}Code language: C# (cs)
WebInfo.cs (objeto principal de nível superior)
namespace NewtonsoftDemo
{
    public class WebInfo
    {
        public string webname { set; get; }
        public string website { set; get; }
        public int age { set; get; }
        public Person[] students { set; get; }
    }
}Code language: C# (cs)

Exemplo: serializar objeto para JSON

protected void Page_Load(object sender, EventArgs e)
{
    // 1. Instanciar a entidade e preencher os valores
    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 = "JACK" } 
    };

    // 2. Forma de baixo nível do Newtonsoft.Json: serializar com JsonWriter
    StringWriter sw = new StringWriter();
    JsonWriter writer = new JsonWriter(sw);
    new JsonSerializer().Serialize(writer, webInfo);
    string json = sw.GetStringBuilder().ToString();
}Code language: C# (cs)

Sintaxe simplificada para uso diário

O Newtonsoft.Json disponibiliza métodos utilitários estáticos, evitando a criação manual de JsonWriter:

// Serialização em uma linha, muito usada no dia a dia do desenvolvimento
string json = JsonConvert.SerializeObject(webInfo);Code language: C# (cs)

Resultado JSON gerado

{
  "webname": "FoxDevelop",
  "website": "foxdevelop.com",
  "age": "4",
  "students": [
    {"name":"TOM"},
    {"name":"JACK"}
  ]
}Code language: C# (cs)

Outras observações

  • System.Text.Json: biblioteca JSON nativa da Microsoft a partir do .NET Core 3.0; ainda assim, projetos antigos do .NET Framework costumam usar o Newtonsoft.Json.
  • Recursos: suporte a apelidos de propriedades, ignorar campos, formatação de datas, tratamento de referências circulares e outras funcionalidades avançadas.

Apresentação

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *