Serialize xmldocument to json с использованием system.text.json в .net Core 3.1 Web API ProjectC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Serialize xmldocument to json с использованием system.text.json в .net Core 3.1 Web API Project

Сообщение Anonymous »

Я переключаюсь с Newtonsoft.json на System.text.json в проекте .NET Core 3.1 Web API. Проект является устаревшим проектом .NET Core Web API с сотнями клиентов. Некоторые из конечных точек контроллера возвращают Xmldocuments. Использование Newtonsoft.json для сериализации XMldocuments для JSON работало нормально и дал ожидаемый результат. К сожалению, при переходе на System.text.json сериализация не работает одинаково. Xml; < /p>

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

public class Program
{
public static void Main()
{
var xml = @"item 1item 2";
var xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
Console.WriteLine($"Xml: {xml}");
Console.WriteLine($"XmlDocument xml: {xmlDoc.ToString()}");

var serializedXml = System.Text.Json.JsonSerializer.Serialize(xmlDoc);
Console.WriteLine($"Serialized xml using System.Text.Json: {serializedXml}");

serializedXml = Newtonsoft.Json.JsonConvert.SerializeObject(xmlDoc);
Console.WriteLine($"Serialized xml using Newtonsoft.Json: {serializedXml}");
}
}
.net Пример Fiddler
result
Xml: item 1item 2
XmlDocument xml: System.Xml.XmlDocument
Serialized xml using System.Text.Json: [[[[[]],[[]]]]]
Serialized xml using Newtonsoft.Json: {"root":{"items":{"item":[{"@id":"1","#text":"item 1"},
{"@id":"2","#text":"item 2"}]}}}
< /code>
Есть ли способ использовать System.text.json для автоматической сериализации XMldocuments в .net Core 3.1 Web API, кроме: < /p>

[*] Использование Newtsoft.json Serializer в качестве стандарта для всего проекта
[*] Создание пользовательского XMldocument textOutputformatteratter и добавление его в форматор
< /ol>

Подробнее здесь: https://stackoverflow.com/questions/642 ... web-api-pr
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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