Как десериализовать смешанные JSON и XML в классыC#

Место общения программистов C#
Ответить
Гость
 Как десериализовать смешанные JSON и XML в классы

Сообщение Гость »


Я получаю строку ответа от Azure DevOps REST API, которая содержит в основном JSON, а также XML, разбросанный по нескольким значениям свойств. Я создаю несколько классов C#, копирующих структуру ответа JSON, чтобы десериализовать ответ.

Когда

var ответ = client.Get(запрос); если (response.StatusCode == HttpStatusCode.OK && ответ.Содержимое!= ноль) { return JsonSerializer.Deserialize(response.Content); } достигает XML в

Поля общедоступного класса { ... [JsonPropertyName("Microsoft.VSTS.TCM.Steps")] общедоступные шаги MicrosoftVSTSTCMSteps {get; набор; } } Я получаю

System.Text.Json.JsonException: 'Значение JSON не удалось преобразовать в ADO.Response.Steps. Путь: $.fields['Microsoft.VSTS.TCM.Steps'] | НомерЛинии: 0 | BytePositionInLine: 5149.'

Класс Steps определяется следующим образом

[XmlRoot(ElementName = "шаги")] Шаги публичного класса { [XmlElement(ElementName = "шаг")] общественный Шаг [] Шаг {получить; набор; } [XmlAttribute(AttributeName = "id")] публичный идентификатор строки {get; набор; } [XmlAttribute(AttributeName = "последний")] публичная строка Last { get; набор; } ... } Отрывок входящей строки JSON/XML выглядит следующим образом:

{ ... "Microsoft.VSTS.TCM.Steps":" ... } Как десериализовать JSON и XML, не отделяя класс Steps от иерархии, например сохраняя XML в виде строки в десериализованном JSON?

Я хочу избежать такой постобработки
XmlSerializer XmlSerializer = новый XmlSerializer(typeof(Steps)); Шаги шаги = (Steps)XmlSerializer.Deserialize(new StringReader(resp.fields.MicrosoftVSTSTCMSteps));
Ответить

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

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

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

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

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