При попытке десериализации значение JSON не удалось преобразовать в класс (?)C#

Место общения программистов C#
Ответить
Anonymous
 При попытке десериализации значение JSON не удалось преобразовать в класс (?)

Сообщение Anonymous »

Здесь очень новичок-программист, пытающийся изучить C#. Я пытаюсь десериализовать файл JSON, а затем распечатать значения внутри. Однако я столкнулся с исключением Json в виде: невозможно преобразовать в созданный мной класс.
Соответствующий код:

Код: Выделить всё

public class Games
{
public string? Title { get; set;}
public int ReleaseYear { get; set;}
public double Rating { get; set;}
}

public class ReadAndParseJSONFromFile()
{
public static void ReadingJSON()
{
string filePath = @"C:\Users\Kodain\C#\Game Data Parser\games.json";
string jsonString = File.ReadAllText(filePath);
Games games = JsonSerializer.Deserialize(jsonString)!;
System.Console.WriteLine("Loaded games are: ");
System.Console.WriteLine($"{games.Title}, released in {games.ReleaseYear}, rating: {games.Rating}");
}
}
и предоставленный файл JSON:

Код: Выделить всё

[
{
"Title": "Stardew Valley",
"ReleaseYear": 2016,
"Rating": 4.9
},
{
"Title": "Frostpunk",
"ReleaseYear": 2017,
"Rating": 4.7
},
{
"Title": "Oxygen Not Included",
"ReleaseYear": 2017,
"Rating": 4.8
},
{
"Title": "Red Dead Redemtpion II",
"ReleaseYear": 2018,
"Rating": 4.8
},
{
"Title": "Portal 2",
"ReleaseYear": 2011,
"Rating": 4.8
}
]
Я пытался использовать документацию Microsoft о том, как десериализовать, поскольку никогда раньше не делал этого с JSON, только с текстовыми файлами. Я ожидал, что программа прочитает файл JSON, а затем распечатает все игры с названием, годом выпуска и рейтингом. Вместо этого я получил исключение JsonException, которое сообщает мне, что значение JSON невозможно преобразовать в Games:
Произошло исключение: CLR/System.Text.Json.JsonException
Необработанное исключение В System.Text.Json.dll произошел тип «System.Text.Json.JsonException»: «Не удалось преобразовать значение JSON в Games».
Я попробовал свой google-fu, но я слишком нуб и не могу найти решение своей проблемы. Я в полном замешательстве.

Подробнее здесь: https://stackoverflow.com/questions/786 ... d-to-class
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»