продукт и категорию(т.е по name выводить)
Делал с помощью foreach, но с типом Root он не работает
Можете подсказать, как решить эту проблему?
Код прикрепил:
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
namespace hhh
{
class Program
{
static void Main(string[] args)
{
// Console.WriteLine("Hello World!");
RunAsync().Wait();
}
static async Task RunAsync()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("");
if (response.IsSuccessStatusCode)
{
// var product = await response.Content.ReadAsStringAsync();
var source = "{\"Products\":[{\"Id\":12,\"Name\":\"Any soap\",\"CategoryId\":4},{\"Id\":10,\"Name\":\"Liquid soap\",\"CategoryId\":4},{\"Id\":15,\"Name\":\"Squash\",\"CategoryId\":5},{\"Id\":6,\"Name\":\"Mouse Logitech\",\"CategoryId\":2},{\"Id\":3,\"Name\":\"Venia Shampoo\",\"CategoryId\":1},{\"Id\":8,\"Name\":\"Rectangular Wheel\",\"CategoryId\":3},{\"Id\":6,\"Name\":\"Mouse Logitech\",\"CategoryId\":2},{\"Id\":11,\"Name\":\"Spoiled soap\",\"CategoryId\":4}],\"Categories\":[{\"Id\":4,\"Name\":\"Soap\"},{\"Id\":5,\"Name\":\"Vegetables\"},{\"Id\":2,\"Name\":\"Computers\"},{\"Id\":1,\"Name\":\"Shampoo\"},{\"Id\":3,\"Name\":\"Wheels\"}]}";
Root parsed = JsonConvert.DeserializeObject<Root>(source);
Console.WriteLine("Total amount of products: " + parsed.Products.Count());
Console.WriteLine("Total amount of categories : " + parsed.Categories.Count());
Console.WriteLine(parsed.Products.ToArray());
}
}
}
}
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public int CategoryId { get; set; }
}
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
}
public class Root
{
public List<Product> Products { get; set; }
public List<Category> Categories { get; set; }
}
}
Сразу с ходу - ты можешь сделать метод Main асинхронным, начиная с шарпа версии 7.2 async Task Main() { await RunAsync(); }
О, Спасибо Надо будет поправить
foreach (Product p in parsed.Products) { string name = p.Name; }
Очепятка. Product
Спасибо Затестил, все хорошо
Обсуждают сегодня