Atividade 10.4
Para resolver esse problema, foi um pouco mais difícil, já que eu só notei depois que não poderia desserializar com <List<Usuario>>, e sim que teria que criar uma classe externa para representar a lista de usuários a ser desserializada.
Usei esse post de auxílio: https://stackoverflow.com/questions/68275097/the-json-value-could-not-be-converted-to-system-collections-generic-list
Program.cs
using System.Text.Json;
string nomeArquivo = "infos";
string textoArquivo = File.ReadAllText(nomeArquivo);
var listaInformacoes = JsonSerializer.Deserialize<ListaUsuarios>(textoArquivo);
listaInformacoes!.listaUsuarios!.ForEach(u => Console.WriteLine($"{u.Nome} - {u.Email} - {u.Idade}"));
Usuario.cs
using System.Text.Json.Serialization;
class Usuario {
[JsonPropertyName("nome")]
public string? Nome {get;set;}
[JsonPropertyName("idade")]
public int Idade {get;set;}
[JsonPropertyName("email")]
public string? Email {get;set;}
public Usuario(string? nome, int idade, string? email) {
Nome = nome;
Idade = idade;
Email = email;
}
public void ExibirInformacoes() {
Console.WriteLine();
Console.WriteLine($"Nome: {Nome}");
Console.WriteLine($"Email: {Email}");
Console.WriteLine($"Idade: {Idade}");
Console.WriteLine();
}
}
ListaUsuarios.cs
using System.Text.Json.Serialization;
class ListaUsuarios {
public List<Usuario>? listaUsuarios {get;set;}
}
Atividade 10.5
Program.cs
using System.Text.Json;
Console.Clear();
string nomeArquivo = "infos";
string textoArquivo = File.ReadAllText(nomeArquivo);
var listaInformacoes = JsonSerializer.Deserialize<ListaUsuarios>(textoArquivo);
Console.Write("Insira a idade: ");
int idade; int.TryParse(Console.ReadLine()!, out idade);
listaInformacoes!.listaUsuarios = listaInformacoes!.listaUsuarios!.Where(u => u.Idade == idade).ToList();
listaInformacoes!.listaUsuarios!.ForEach(u => Console.WriteLine($"{u.Nome} - {u.Email} - {u.Idade}"));
ListaUsuarios.cs
using System.Text.Json.Serialization;
class ListaUsuarios {
public List<Usuario>? listaUsuarios {get;set;}
}
Usuario.cs
using System.Text.Json.Serialization;
class Usuario {
[JsonPropertyName("nome")]
public string? Nome {get;set;}
[JsonPropertyName("idade")]
public int Idade {get;set;}
[JsonPropertyName("email")]
public string? Email {get;set;}
public Usuario(string? nome, int idade, string? email) {
Nome = nome;
Idade = idade;
Email = email;
}
public void ExibirInformacoes() {
Console.WriteLine();
Console.WriteLine($"Nome: {Nome}");
Console.WriteLine($"Email: {Email}");
Console.WriteLine($"Idade: {Idade}");
Console.WriteLine();
}
}