а вот смотрите(вопрос по тому же json'у, что описывал выше). Я распарсил json с помощью Root, а используя Dictionary, я ловлю такой exeption? Подскажите - стоит дальше работать через рут или этот вариант лучше? Потому что, как я понимаю, используя Dictionary, исключение ругается на модель, а что в ней не так, ума не приложу, ибо, опять-таки, с рутом все нормально проходит. Скрин и код ниже предоставлю
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 hrtask
{
class Program
{
static void Main(string[] args)
{
RunAsync().Wait();
}
static async Task RunAsync()
{
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("
http://tester.consimple.pro");
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await client.GetAsync("");
if (response.IsSuccessStatusCode)
{
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\"}]}";
var parsed = JsonConvert.DeserializeObject<Dictionary<string, Product>>(source);
foreach (var products in parsed)
{
Console.WriteLine($"Key: {products.Key}");
Console.WriteLine($"Name: {products.Value.Name} CategoryId: {products.Value.CategoryId}");
}
}
}
}
}
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; }
}
}