Сериализация Xml в Json с использованием атрибута type в c # - PullRequest
0 голосов
/ 12 октября 2018

Я хотел бы сериализовать свой XML в формате json, сохраняя тип числа.

Ниже моего XML:

<root type="number">42</root>

Вот мой ожидаемый результат:

{
"root": 42
}

Я пытаюсь использовать библиотеку Newtonsoft, используя метод JsonConvert.SerializeXmlNode, но кажется, что он не работает:

МОЙ КОД:

XmlDocument dox1 = new XmlDocument();
string xx = "<root type=\"number\">42</root>";
dox1.LoadXml(xx);

string JsonContent = Newtonsoft.Json.JsonConvert.SerializeXmlNode(dox1, Newtonsoft.Json.Formatting.Indented, true);
//JsonResult json = Json(JsonContent);
return JsonContent;

РЕЗУЛЬТАТ:

{
"@type": "number",
"#text": "42"
}

Можете ли вы помочь мне?

1 Ответ

0 голосов
/ 12 октября 2018

Ваш XML не имеет никакого отношения к вашему ожидаемому JSON.Это полностью ручное преобразование, которое вы можете сделать следующим образом (я полагаю, вы имели в виду 42, иначе объясните логику получения 4):

void Main()
{
    string xx = "<root type=\"number\">42</root>";
    var value = new { orderType = (int)XElement.Parse(xx)};
    var json = JsonConvert.SerializeObject(value);
    Console.WriteLine(json);
}
...