Могу ли я десериализовать вложенное свойство JSON вместо его объекта?C#

Место общения программистов C#
Ответить
Anonymous
 Могу ли я десериализовать вложенное свойство JSON вместо его объекта?

Сообщение Anonymous »

Я хочу сериализовать вложенную структуру JSON с помощью System.Text.Json в обычные классы C#, но у меня есть конкретный случай, когда мне нужно одно свойство вложенного объекта, а не полный объект, содержащий его. Это часть большого JSON с множеством других свойств и вложенных структур, которые я хочу проанализировать с помощью JsonSerializer.Deserialize(). Это единственная часть этого JSON, к которой я хочу относиться таким «особым» образом.
Предположим, у меня есть JSON, структурированный следующим образом:

Код: Выделить всё

{
"data": [
{
"id": "A"
},
{
"id": "B"
}
]
}
Но я хочу, чтобы он десериализовался, как если бы он был структурирован точно так же, чтобы я мог поместить его в список:

Код: Выделить всё

{
"data": [
"A",
"B"
]
}
Можно ли это сделать, просто используя некоторые встроенные функции System.Text.Json, или мне нужно создать отдельный класс для объектов в массиве «data»?
Я специально не хочу здесь использовать Json.NET или использовать любую другую библиотеку, я просто хочу знать, действительно ли то, что я пытаюсь сделать, возможно без написания каких-либо пользовательских преобразователей.
/>Я изучил доступные атрибуты, поставляемые с System.Text.Json, а также некоторую документацию (включая «учебники»), даже не глядя. Я также рассмотрел несколько вопросов здесь по SO (очевидно), но все они довольно старые и в основном нацелены на Json.Net:
  • Десериализовать вложенный объект Json в свойство уровня класса вместо объекта класса -> Вроде моего вопроса, но с Json.Net
  • Могу ли я указать путь в атрибуте для сопоставления свойства в моем классе с дочерним свойством в моем JSON? -> Это был бы крутой подход, но ответ в основном «сделай сам», что для меня нет.
  • Десериализация JSON, свойства вложенного объекта в родительский объект. C# -> Здесь используется DataContractJsonSerializer, который я здесь не использую.
Поэтому я еще не нашел ничего полезного для своего случая, но я также не знаю, пропустил ли я что-то.

Подробнее здесь: https://stackoverflow.com/questions/798 ... its-object
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»