Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

The JSON value could not be converted to System.Collections.Generic.List`1

Boa tarde !

Estou tentando deserializar um JSON de uma API REST e esta ocorrendo o seguinte erro:

(The JSON value could not be converted to System.Collections.Generic.List1[ModelosAnos]. Path: $ | LineNumber: 0 | BytePositionInLine: 1.")

Segue código inteiro da aplicação para validação:

using ConsultaFIPE.Modelos;
using System.Text.Json;
using System.Text.Json.Serialization;

using (HttpClient client = new HttpClient())
{
    try
    {
        string respostaModelos = await client.GetStringAsync("https://parallelum.com.br/fipe/api/v1/carros/marcas/4/modelos"); 
        var modelos = JsonSerializer.Deserialize<List<ModelosAnos>>(respostaModelos)!;

         Console.WriteLine($"Primeira marca: {modelos[0].modelos[0].nome}");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Temos um problema: {ex.Message}");
    }
}

public class ModelosAnos
{
    [JsonPropertyName("modelos")]
    public List<Modelo> modelos { get; set; }
    [JsonPropertyName("anos")]
    public List<Ano> anos { get; set; }
}

public class Modelo
{
    [JsonPropertyName("codigo")]
    public int codigo { get; set; }

    [JsonPropertyName("nome")]
    public string nome { get; set; }
    
}

public class Ano
{
    [JsonPropertyName("codigo")]
    public string codigo { get; set; }

    [JsonPropertyName("nome")]
    public string nome { get; set; }
}

Conseguem me ajudar por favor ?

Obrigado.

att,

2 respostas
solução!

Alterar de Deserialize<List> para Deserialize resolve seu problema.

Código Exemplo

Olá Bruno

Muito obrigado pela ajuda.

Abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software