Универсальный парсер json

В каждом втором решении я использую парсинг json. Типичная ситуация, когда нужно парсить результаты, которые возвращаются из API. Ниже в помощь вам кусочек кода, который можно использовать для парсинга json разных форматов и превращения их в таблицу с данными.

using System;

using System.Collections.Generic;

using System.Text.Json;

using System.Text.Json.Serialization;

public class Program

{

public static void Main()

{

string jsonString = @"{

""name"": ""John Doe"",

""age"": 30,

""isMarried"": true,

""children"": [

{ ""name"": ""Jane"", ""age"": 10 },

{ ""name"": ""Jake"", ""age"": 8 }

],

""address"": {

""street"": ""123 Main St"",

""city"": ""Anytown"",

""state"": ""CA""

}

}";

// Парсинг JSON в JsonDocument

using (JsonDocument doc = JsonDocument.Parse(jsonString))

{

JsonElement root = doc.RootElement;

// Пример доступа к данным

string name = root.GetProperty("name").GetString();

int age = root.GetProperty("age").GetInt32();

bool isMarried = root.GetProperty("isMarried").GetBoolean();

Console.WriteLine($"Name: {name}");

Console.WriteLine($"Age: {age}");

Console.WriteLine($"Married: {isMarried}");

// Работа с массивом

JsonElement children = root.GetProperty("children");

foreach (JsonElement child in children.EnumerateArray())

{

string childName = child.GetProperty("name").GetString();

int childAge = child.GetProperty("age").GetInt32();

Console.WriteLine($"Child Name: {childName}, Age: {childAge}");

}

// Работа с вложенным объектом

JsonElement address = root.GetProperty("address");

string street = address.GetProperty("street").GetString();

string city = address.GetProperty("city").GetString();

string state = address.GetProperty("state").GetString();

Console.WriteLine($"Address: {street}, {city}, {state}");

}

}

}