Como converter JSON para classe C #

Como Converter Json Para Classe C



JSON ou Notação de objeto JavaScript é baseado em um subconjunto da linguagem de programação JavaScript, mas é independente da linguagem e pode ser usado com qualquer linguagem de programação que tenha um analisador JSON. Usar JSON dados na programação C#, é preciso converter JSON para um classe C# . Isso permite que os programadores interajam com os dados de maneira segura, o que reduz o risco de erros e torna o código mais simples de manter.

Trabalhando com JSON dados em C# frequentemente requerem a conversão do dados JSON em classes C# que podem ser prontamente editados e usados ​​no aplicativo. Este tutorial abordará o processo de conversão JSON dados para classes C#, com exemplos de código para ajudá-lo ao longo do caminho.







Como converter um JSON em uma classe C#

Os passos para converter um JSON para um Classe C# são:



Etapa 1: analisar os dados JSON



O primeiro passo para converter JSON para um classe C# é analisar os dados JSON e determinar sua estrutura. Isso envolve a identificação das chaves ou propriedades dos dados e seus tipos de dados correspondentes. Depois que essas informações forem coletadas, podemos começar a criar uma classe C# correspondente que representará os dados JSON.





Etapa 2: criar uma classe C# que representa os dados JSON

O JSON o nome dos dados é então usado para definir uma classe. Dentro desta classe, definimos propriedades que correspondem às chaves no JSON dados. Definimos os tipos de dados das propriedades para corresponder aos tipos de dados dos valores no JSON dados. Por exemplo, se uma chave no JSON data tem o valor de uma string, definimos a propriedade correspondente na classe C# como uma string.



Etapa 3: desserializar os dados JSON

Depois de criar a classe C#, a próxima etapa é desserializar o JSON dados em uma instância de classe. Isso é possível com o Newtonsoft.Json biblioteca, que fornece uma API direta para desserializar JSON dados. Você precisa instalar e importar o Newtonsoft.Json pacote para usá-lo em seu código. Crie uma instância do JsonSerializer aula e ligue para o desserializar método, entregando o JSON data como uma string e a classe C# como o parâmetro de tipo genérico:

usando Newtonsoft.Json;

// dados JSON
string json = '{' nome ':' John Smith ',' idade ':30}' ;
// C # aula
pessoa de classe pública
{
Nome da string pública { pegar; definir ; }
public int idade { pegar; definir ; }
}
// Desserializar dados JSON em um objeto Person
Pessoa pessoa = JsonConvert.DeserializeObject < Pessoa > ( json ) ;

O JSON os dados neste exemplo são um objeto simples com uma propriedade name e age, e a classe C# é uma classe Person com propriedades semelhantes. JsonConvert.DeserializeObject é usado para converter JSON dados em um objeto Person que pode ser editado e usado no aplicativo.

Etapa 4: manipular o objeto C#

Após desserializar o dados JSON dentro de objeto C# , ele pode ser manipulado e usado no aplicativo conforme desejado. As propriedades podem ser lidas ou definidas, os métodos podem ser invocados e o objeto pode ser fornecido como um parâmetro para outros procedimentos ou funções.

Aqui está um exemplo de como trabalhar com o Pessoa objeto que você fez na etapa anterior:

// Pegue a pessoa nome de
string nome = pessoa.Nome;

// Define a pessoa'
sábio
pessoa.Idade = 31 ;

// Chame um método no objeto pessoa
pessoa.PrintDetails ( ) ;

O objeto person é usado neste exemplo para obter o nome da pessoa, definir a idade da pessoa e chamar o ImprimirDetalhes método no objeto.

Aqui está um código completo demonstrando como converter JSON para uma classe C # .

usando Sistema;
usando Newtonsoft.Json;

namespace JsonToClassExample
{
programa de classe
{
vazio estático Principal ( corda [ ] argumentos )
{
string json = @ '{
'primeiroNome': 'Larry',
'lastName': 'Kevin',
'endereço': {
'rua': 'Rua Principal',
'cidade': 'Veneza',
}
}'
;

Rootobject myObject = JsonConvert.DeserializeObject < objeto raiz > ( json ) ;

Console.WriteLine ( 'O primeiro nome é: ' + meuObjeto.primeiroNome ) ;
Console.WriteLine ( 'O sobrenome é: ' + meuObjeto.últimoNome ) ;
Console.WriteLine ( 'A rua é: ' + meuObjeto.endereço.rua ) ;
Console.WriteLine ( 'A cidade é: ' + meuObjeto.endereço.cidade ) ;


Console.ReadLine ( ) ;
}
}

classe pública Rootobject
{
string pública firstName { pegar; definir ; }
string pública lastName { pegar; definir ; }
endereço de endereço público { pegar; definir ; }
}

endereço de classe pública
{
rua pública { pegar; definir ; }
cidade pública { pegar; definir ; }
}
}

O código acima demonstra como usar Pacote Newtonsoft.Json NuGet para desserializar a String JSON em uma classe C # . A string JSON compreende informações sobre o nome e sobrenome de uma pessoa, bem como seu endereço (rua e cidade). Como classes C#, as classes Rootobject e Address estabelecem a estrutura dos dados JSON.

O JsonConvert.DeserializeObject método é usado para converter uma string JSON em um objeto raiz instância. Os dados são exibidos no console acessando os atributos do objeto raiz e classes de endereço. O Console.ReadLine O método é usado para interromper o programa antes que ele termine.

Saída

Outras maneiras de converter JSON para C#

Você também pode copiar o JSON dados para a área de transferência e use um Gerador de classes JSON para C# para gerar a classe C#. Existem várias ferramentas online, como Json2CSharp e QuickType , que pode ajudá-lo a gerar sua classe C# de JSON dados. cole o JSON dados no campo apropriado e deixe a ferramenta gerar a classe C# para você. Essa abordagem é direta e rápida. No entanto, para fins de aprendizado, você deve seguir o primeiro método.

Conclusão

Convertendo dados JSON em uma classe C# envolve analisar o JSON data, criando uma classe C# correspondente e desserializando os dados JSON no objeto de classe C#. Este processo pode ser útil ao trabalhar com JSON dados em aplicativos C#, facilitando a leitura, manipulação e envio de dados para serviços da Web ou APIs. Para traduzir rapidamente JSON para C# , você também pode utilizar várias ferramentas da web, como Json2CSharp e QuickType .