ComplexValidate Ответов: 1

Универсального решения для конвертации данных в формат XML


Это библиотека служебных классов, на библиотеку dll которой можно ссылаться в любом проекте. Библиотека классов будет иметь методы, которые будут принимать данные типа object data в качестве входного параметра, преобразовывать их в XML-файл и хранить в пути к файлу.

Метод должен принимать тип данных объекта (тип данных объекта может напоминать данные любого типа, т. е. определенный пользователем тип данных или объект класса, списка, таблицы данных, формата JSON и т. д.)

Что я уже пробовал:

Я создал этот метод, который возвращает правильный результат для datatable и list но не для JSON тип данных:
public static string GetXMLFromObject(object o)
        {
            StringWriter sw = new StringWriter();
            XmlTextWriter tw = null;
            try
            {
                XmlSerializer serializer = new XmlSerializer(o.GetType());
                tw = new XmlTextWriter(sw);
                serializer.Serialize(tw, o);
            }
            catch (Exception ex)
            {
                throw ex;
                //Handle Exception Code
            }
            finally
            {
                sw.Close();
                if (tw != null)
                {
                    tw.Close();
                }
            }
            return sw.ToString();
        }


Любые зацепки будут высоко оценены.

CHill60

Что вы подразумеваете под "неудачей" - что происходит

ComplexValidate

Я получаю данные JSON в одной строке, например так:
<что-нибудь>'?xml': {
'@версия': '1.0',
'@standalone': 'no'
},
"корень": {
"человек": [
{
'@id': '1',
"имя": "Алан",
'url': 'http://www.google.com'
},
{
'@id': '2',
"имя": "Луи",
'url': 'http://www.yahoo.com'
}<anything: close tag не принимается здесь>

F-ES Sitecore

JSON-это просто строка. Если вы хотите сохранить его как объект со свойствами, вам нужно преобразовать JSON в объект, а затем сериализовать его. Однако в этом мало смысла, если это строка JSON, то просто сохраните строку такой, какая она есть, не нужно ее сериализовывать. Сериализация предназначена для преобразования объектов в формат, который может быть сохранен (обычно текстовый или двоичный), но JSON уже находится в этом формате.

1 Ответов

Рейтинг:
2

Maciej Los

Вы должны использовать сериализация JSON[^] для данных JSON вместо XmlSerialization.

Для получения более подробной информации, пожалуйста, смотрите: Как сериализовать и десериализовать данные JSON | Microsoft Docs[^]