Задать вопрос
@Bodden

Десериализовать массив JSON?

Здравствуйте.
Помогите пожалуйста разобраться вот в таком вопросе.
Есть массив JSON
["1","2","3","4","5"]
Я создал класс:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Threading.Tasks;

namespace ReflTest
{
    internal class DesJson
    {
        public List<string> RunDesir(string jsonString)
        {
            List<string> result = new List<string>();

            var deserializationJson = JsonSerializer.Deserialize<List<DeserializationJson>>(jsonString);

            return result;
        }
    }

    public class DeserializationJson
    {
        public string[] Property1 { get; set; }
    }
}
ч

И получаю ошибку:
66582c10e3749606179101.jpeg

Что только не пробовал. Вроде JSON не сложный, а десериализовать не могу.

Спасибо.
  • Вопрос задан
  • 224 просмотра
Подписаться 2 Простой Комментировать
Решения вопроса 2
Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting
Насколько я помню, для десериализации массива строк 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);
    }
}
Ответ написан
Комментировать
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Здесь
var deserializationJson = JsonSerializer.Deserialize<List<DeserializationJson>>(jsonString);

должно быть:
var deserializationJson = JsonSerializer.Deserialize<List<string>>(jsonString);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы