Как новичок в .NET, я учусь работать с десериализацией JSON в C#. Как я могу эффективно десериализовать массив объектов JSON с вложенными свойствами в список экземпляров C#, эффективно обрабатывая процесс удаления вложенности?
У меня есть массив JSON, представляющий список объектов с вложенными свойствами, например:
[
{"name":"apple","properties":{"color":"red","flavor":"sweet"}},
{"name":"orange","properties":{"color":"orange","flavor":"sour"}}
]
Я хочу десериализовать этот JSON в список объектов C#. Класс C# выглядит следующим образом:
public class Fruit
{
public string Name { get; set; }
public string Color { get; set; }
public string Flavor { get; set; }
}
Важно отметить, что структура объекта C# (Fruit) отличается от структуры объекта JSON. В частности, объект C# не имеет переменной «свойства».
Есть ли более эффективный способ добиться этого, чем вручную перебирать элементы массива JSON и присваивать значения объектам Fruit?
Мой код:
using System;
using System.Collections.Generic;
using System.Text.Json;
public class Fruit
{
public string Name { get; set; }
public string Color { get; set; }
public string Flavor { get; set; }
}
class Program
{
static void Main()
{
string json = "[{\"name\":\"apple\",\"properties\":{\"color\":\"red\",\"flavor\":\"sweet\"}},{\"name\":\"orange\",\"properties\":{\"color\":\"orange\",\"flavor\":\"sour\"}}]";
// Deserialize into a list of Fruit objects
List fruits = new List();
var options = new JsonSerializerOptions
{
PropertyNameCaseInsensitive = true
};
var jsonObjects = JsonSerializer.Deserialize(json, options);
foreach (var jsonObject in jsonObjects)
{
var fruit = new Fruit
{
Name = jsonObject.GetProperty("name").GetString(),
Color = jsonObject.GetProperty("properties").GetProperty("color").GetString(),
Flavor = jsonObject.GetProperty("properties").GetProperty("flavor").GetString()
};
fruits.Add(fruit);
}
// Print the fruits
foreach (var fruit in fruits)
{
Console.WriteLine("Name: " + fruit.Name);
Console.WriteLine("Color: " + fruit.Color);
Console.WriteLine("Flavor: " + fruit.Flavor);
Console.WriteLine();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... or-c-sharp
Эффективное удаление вложенных вложенных свойств при десериализации JSON для C# ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
System.Net.Http.Json не учитывает поля при сериализации или десериализации в JSON [дубликат]
Anonymous » » в форуме C# - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Эффективное удаление целого числа из матрицы построчных перестановок целых чисел
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-