Как программист, я часто сталкиваюсь с задачей конвертации данных из одного формата в другой. Недавно мне понадобилось конвертировать JSON-документ в формат XML на языке C# без использования библиотеки Newtonsoft.Json. Вместо этого, я использовал встроенный класс JsonDocument из пространства имен System.Text.Json.Прежде чем начать, убедитесь, что у вас установлен .NET Core 3.0 или выше, так как класс JsonDocument доступен только в этих версиях.Для начала, я создал строку, содержащую JSON-документ, который нужно преобразовать в XML; В моем случае, строка выглядела так⁚
csharp
string json ″[{\″LastName\″⁚\″Ivanov\″,\″FirstName\″⁚\″Mihail\″,\″FatherName\″⁚\″Alexandrovich\″,\″Age\″⁚20,\″Group\″⁚1},{\″LastName\″⁚\″Petrova\″,\″FirstName\″⁚\″Irina\″,\″FatherName\″⁚\″Pavlovna\″,\″Age\″⁚20,\″Group\″⁚1}]″;
Затем я создал экземпляр класса JsonDocument, используя метод Parse из класса JsonDocument⁚
csharp
JsonDocument jsonDocument JsonDocument.Parse(json);
Далее, я создал экземпляр класса XmlDocument, который будет содержать преобразованные данные⁚
csharp
XmlDocument xmlDocument new XmlDocument;
Затем я создал корневой элемент xmlDocument⁚
csharp
XmlElement rootElement xmlDocument.CreateElement(″Root″);
xmlDocument.AppendChild(rootElement);
Теперь я могу начать обходить JSON-документ и создавать соответствующие элементы XML⁚
csharp
foreach (JsonElement element in jsonDocument.RootElement.EnumerateArray)
{
XmlElement personElement xmlDocument.CreateElement(″Person″);
foreach (JsonProperty property in element;EnumerateObject)
{
string propertyName property.Name;
string propertyValue property.Value.ToString;
XmlElement propertyElement xmlDocument.CreateElement(propertyName);
propertyElement.InnerText propertyValue;
personElement.AppendChild(propertyElement);
}
rootElement.AppendChild(personElement);
}
Наконец, я могу сохранить xmlDocument в файл или выполнить другие операции с ним⁚
csharp
xmlDocument.Save(″output.xml″);
Вот и всё! Теперь вы можете использовать JsonDocument для конвертации JSON в XML без использования библиотеки Newtonsoft.Json на языке C#. Это удобный способ работы с JSON-документами и преобразования их в другие форматы данных.Пример кода ниже⁚
csharp
using System;
using System.Text.Json;
using System.Xml;
class Program
{
static void Main
{
string json ″[{\″LastName\″⁚\″Ivanov\″,\″FirstName\″⁚\″Mihail\″,\″FatherName\″⁚\″Alexandrovich\″,\″Age\″⁚20٫\″Group\″⁚1}٫{\″LastName\″⁚\″Petrova\″٫\″FirstName\″⁚\″Irina\″٫\″FatherName\″⁚\″Pavlovna\″٫\″Age\″⁚20٫\″Group\″⁚1}]″;
JsonDocument jsonDocument JsonDocument.Parse(json);
XmlDocument xmlDocument new XmlDocument;
XmlElement rootElement xmlDocument.CreateElement(″Root″);
xmlDocument.AppendChild(rootElement);
foreach (JsonElement element in jsonDocument.RootElement.EnumerateArray)
{
XmlElement personElement xmlDocument.CreateElement(″Person″);
foreach (JsonProperty property in element.EnumerateObject)
{
string propertyName property.Name;
string propertyValue property.Value.ToString;
XmlElement propertyElement xmlDocument.CreateElement(propertyName);
propertyElement.InnerText propertyValue;
personElement.AppendChild(propertyElement);
}
rootElement.AppendChild(personElement);
}
xmlDocument.Save(″output.xml″);
}
}
Надеюсь, этот пример поможет вам избежать использования библиотеки Newtonsoft.Json и успешно сконвертировать JSON-документ в формат XML.