2016-06-27 2 views
0

У меня есть XML-строка, которая не содержит родительский узел. Этот XML представляет собой запрос json для API. Это кажется бессмысленным, но это делается так, чтобы не программисты могли читать файл. Чтобы преобразовать XML в json, почти все, что я видел, говорит, чтобы преобразовать строку в XMLDocument, а затем использовать следующее, чтобы получить json.XML String без родительского узла для JSON с C#

string jsonText = JsonConvert.SerializeXmlNode(doc); 

У меня есть проблема здесь в том, что XML является на самом деле не действует и из-за этого, она не может быть преобразован в XML-документ. Я действительно хочу, чтобы это можно было сделать.

string jsonText = JsonConvert.SerializeXmlNode(doc.InnerXml); 

Это не работает, поскольку innerXML - это строка, а не объект. Я смог заставить его работать, создав корневой элемент, а затем просто используя подстроку, чтобы вырезать результирующую строку, но это кажется бессмысленным. Должен быть лучший способ сделать это, не добавляя xml только для того, чтобы впоследствии удалить его из json. Возможно ли преобразовать часть xml, как xml ниже, в json, как в примере ниже.

<rootnode> 
    <fielda>a</fielda> 
    <fieldb>b</fieldb> 
</rootnode> 

Преобразование в

{ 
    "fielda": "a", 
    "fieldb": "b" 
    } 
+0

http://www.utilities-online.info/xmltojson/#.V3D8CLh96Uk –

ответ

1

JsonConvert.SerializeXmlNode имеет перегруженный метод, который можно использовать, чтобы игнорировать корень.

string jsonText = JsonConvert.SerializeXmlNode(doc, Formatting.None, true); 

Третий параметр для исключения RootObject

Смежные вопросы