Почему у меня не распарсивается 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);