Подтвердить что ты не робот

Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип

У меня такой класс:

public  class MyStok
{
    public int STId { get; set; }
    public int SM { get; set; }
    public string CA { get; set; }
    public string Br { get; set; }
    public string BNo { get; set; }
    public decimal Vat { get; set; }
    public decimal Price { get; set; }
}

Я deserilaze, как это;

string sc=  e.ExtraParams["sc"].ToString();
MyStok myobj = JSON.Deserialize<MyStok>(sc);

Мне кажется, что мой вывод выглядит так (строка sc) на скрипке

[
    {
        "STId": 2,
        "CA": "hbh",
        "Br": "jhnj",
        "SM": 20,
        "Vat": 10,
        "Price": 566,
        "BNo": "1545545"
    }
]

но я получаю ошибку. Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип что не так в этих кодах.

спасибо.

4b9b3361

Ответ 1

Похоже, что строка содержит массив с единственным объектом MyStok. Если вы удаляете квадратные скобки с обоих концов входа, вы можете десериализовать данные как один объект:

MyStok myobj = JSON.Deserialize<MyStok>(sc.Substring(1, sc.Length-2));

Вы также можете десериализовать массив в список объектов MyStok и взять объект с нулевым индексом.

var myobjList = JSON.Deserialize<List<MyStok>>(sc);
var myObj = myobjList[0];

Ответ 3

HttpClient webClient = new HttpClient();
Uri uri = new Uri("your url");
HttpResponseMessage response = await webClient.GetAsync(uri)
var jsonString = await response.Content.ReadAsStringAsync();
var objData = JsonConvert.DeserializeObject<List<CategoryModel>>(jsonString);