Leia um arquivo JSON em C#
Este tutorial discutirá métodos para ler um arquivo JSON em C#.
Leia um arquivo JSON com a classe JsonConvert
em C#
A classe JsonConvert
pode ser usada para ler dados JSON em objetos e variáveis e escrever objetos e variáveis no formato JSON em C#. A classe JsonConvert
está presente no framework Json.net
, que não vem pré-instalado. O comando para instalar Json.net
é fornecido abaixo.
Install-Package Newtonsoft.Json
Neste artigo, usaremos os seguintes dados JSON.
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Para ler os dados desse arquivo, primeiro temos que criar uma classe de modelo que contém todos os atributos que queremos ler do arquivo.
file.json:
class datamodel {
public string key1 { get; set; }
public string key2 { get; set; }
public string key3 { get; set; }
}
Agora temos uma classe de modelo que armazenará todos os dados do arquivo JSON em objetos de classe. Podemos obter dados de um arquivo com a função JsonConvert.DeserializeObject()
em C#. A função JsonConvert.DeserializeObject()
obtém os dados JSON na forma de uma variável de string e os converte no objeto de classe de modelo de dados especificado. O exemplo de código a seguir nos mostra como podemos obter os dados de um arquivo JSON em objetos de classe com a função JsonConvert.DeserializeObject()
em C#.
StreamReader r = new StreamReader("file.json");
string jsonString = r.ReadToEnd();
datamodel m = JsonConvert.DeserializeObject<datamodel>(jsonString);
Inicializamos um StreamReader
- r
para ler o arquivo que contém os dados JSON file.json
. Em seguida, inicializamos o jsonString
, que é todos os dados dentro do arquivo file.json
. Criamos uma instância da classe datamodel
m
para armazenar o valor retornado pela função JsonConvert.DeserializeObject<datamodel>(jsonString)
. Este é o método mais fácil de ler e gravar dados em um arquivo JSON em C#.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn