Почему у меня не распарсивается json?

HttpClient client = new HttpClient();

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "https://catalog.wb.ru/brands/v2/catalog?ab_testing=false&appType=1&brand=27445&curr=rub&dest=-7886569&sort=popular&spp=30&");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
var responseBody = await response.Content.ReadAsStringAsync();
var item = new Item();
Console.WriteLine(item.name);
List<Item> items = JsonConvert.DeserializeObject<List<Item>>($"[{responseBody}]");
items.Sort();
Console.WriteLine(items[0].name);
public class Item
{
    public int id { get; set; }
    public string name { get; set; }
    public int rating { get; set; }
    public string brand { get; set; }
   public int volume { get; set; }
}

Так как content в формате Json, то я хотел распарсить его с помощью Json.Net, но почему-то ничего не выходит.

Пожалуйста, подскажите как правильно это можно оформить?


Ответы (1 шт):

Автор решения: rotabor

С https://catalog.wb.ru/brands/v2/catalog?ab_testing=false&appType=1&brand=27445&curr=rub&dest=-7886569&sort=popular&spp=30& приходит ответ

{
    "state": 0,
    "version": 2,
    "payloadVersion": 2,
    "data": {
        "products": [
            {
                "__sort": 66274,
                "ksort": 517,
                "time1": 2,
                "time2": 38,
                "wh": 206348,
...

Это никак не List<Item>. Нужно сделать что-то вроде

class Product {
    // "__sort": 66274,
    // "ksort": 517,
    // "time1": 2,
    // "time2": 38,
    // "wh": 206348,
    // ...
    // набъёте тут чего надо
}
class Hz {
    public int total { get; set; }
    public List<Product> products { get; set; }
}
class SiteResponce {
    public int state { get; set; }
    public int version { get; set; }
    public int payloadVersion { get; set; }
    public Hz data { get; set; }
}

а потом

var siteResponce = JsonConvert.DeserializeObject<SiteResponce>(responseBody);
→ Ссылка