169 похожих чатов

Ребят, привет Распарсил json и мне нужно вывести определённый

продукт и категорию(т.е по 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; }
}
}

6 ответов

6 просмотров

Сразу с ходу - ты можешь сделать метод Main асинхронным, начиная с шарпа версии 7.2 async Task Main() { await RunAsync(); }

Bogdan-Semkin Автор вопроса

foreach (Product p in parsed.Products) { string name = p.Name; }

Bogdan-Semkin Автор вопроса
Vova Lantsov 🇺🇦
foreach (Product p in parsed.Products) { strin...

Спасибо Затестил, все хорошо

Похожие вопросы

Обсуждают сегодня

Типа вызывать GetParent и проверять на соответствие GetModuleHandle?
The Bird of Hermes
67
Do any of you guys have interesting projects one could join? I'm a Middle Full-Stack developer (JS/TS, React & Node)
Lev Shapiro
40
$res = json_decode($наша строка из респонса); $res1 = array_map(fn($o) => $o->name, $res->breadcrumbs[0]->entities); Как такое будет на Хаскеле?.. В начале весь джейсон, в ко...
Хаскель Моисеевич Гопник
27
В чем сила брат, в NASM или FASM?
Isaac Kleiner
18
Вопрос по диагностике ошибок (я знаю в чем, в данном конкретном примере, я знаю, как исправить, пример модельный, понятно, что в реальности бывает намного запутаннее). module...
ⰄⰎⰋⰐⰐⰑⰛⰤⰧⰧⰩⰄ ⰊⰑⰁⰓⰡⰛⰦⰕⰫ
11
Хтось використовував Vapor на Windows?
Jaroshevskii
15
А чем вам питонисты не угодили?😂
.
79
Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
52
Тут кста кто-нибудь NeoVim использует?
Simple Sorcerer
13
Оба варианта в целом подходят, но скорее создание конфликтной ситуации (на пустой основе). В прошлый раз он сказал мне про ESP32, я забыл про этот микроконтроллер, ошибся, я п...
КТ315
4
Карта сайта