Как новичок в .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#
Место общения программистов C#
1714575198
Anonymous
Как новичок в .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?
[b]Мой код:[/b]
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();
}
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78411640/efficiently-de-nesting-nested-properties-in-json-deserialization-for-c-sharp[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия