Как можно исправить ошибку в коде, который пытается десериализовать JSON массив в List<DeserializationJson>?
Для того чтобы преобразовать JSON массив обратно в объекты/данные, можно воспользоваться библиотекой для работы с JSON, такой как GSON или Jackson. Пример преобразования JSON массива в объекты с использованием библиотеки GSON: ```java Gson gson = new Gson(); DeserializationJson[] objects = gson.fromJson(jsonArray, DeserializationJson[].class); ``` Чтобы исправить ошибку в коде, который пытается десериализовать JSON массив в List<DeserializationJson>, нужно преобразовать JSON массив в List, а не массив: ```java Gson gson = new Gson(); Type listType = new TypeToken<List<DeserializationJson>>() {}.getType(); List<DeserializationJson> objects = gson.fromJson(jsonArray, listType); ``` Этот код создаст List объектов DeserializationJson из JSON массива.
Здесь
var deserializationJson = JsonSerializer.Deserialize<List<DeserializationJson>>(jsonString);
должно быть:
var deserializationJson = JsonSerializer.Deserialize<List<string>>(jsonString);
Насколько я помню, для десериализации массива строк json в List не требуется передавать отдельный класс DeserializationJson, можно использовать сразуJsonSerializer.Deserialize<List<string>>
, попробуйте так:
using System.Text.Json; namespace ReflTest; internal class DesJson { public IEnumerable<string> RunDesir(string jsonString) { var result = JsonSerializer.Deserialize<List<string>>(jsonString) ?? Enumerable.Empty<string>(); return result.Select(item => item.ToString()); } } class Program { static void Main(string[] args) { string jsonString = "[\"1\",\"2\",\"3\",\"4\",\"5\"]"; DesJson desJson = new DesJson(); IEnumerable<string> result = desJson.RunDesir(jsonString); result.ToList().ForEach(Console.WriteLine); } }