Olá, Renan! Tudo bem?
No caso do JSON do Filme, os dados numéricos estão sendo interpretados como string. Isso pode acontecer quando os dados numéricos estão entre aspas no JSON. Por exemplo, se o JSON estiver assim:
{
"titulo": "O Poderoso Chefão",
"ano": "1972"
}
Nesse caso, o campo "ano" está entre aspas, o que faz com que seja interpretado como string. Para corrigir isso, você pode tentar converter a string para um número inteiro após a desserialização, usando o método int.Parse() ou int.TryParse().
No caso do JSON do Livro, parece que os dados numéricos não estão entre aspas, o que é o correto para dados numéricos em JSON. Se os dados estiverem assim:
{
"titulo": "1984",
"ano_publicacao": 1949,
"paginas": 328
}
Nesse caso, os campos "ano_publicacao" e "paginas" estão corretos. Se você não está conseguindo acessar esses campos nem como int, nem como string, pode ser que haja algum problema na sua classe Livro. Verifique se os tipos dos campos correspondem aos tipos dos dados no JSON e se os nomes dos campos estão corretos.
Espero ter ajudado e caso tenha mais problemas, estarei à disposição para ajudá-lo.
Abraços e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.