2013-09-19 2 views
1

Я новичок в Json, и у меня есть простая проблема.Как Json To Xml

Я пытаюсь преобразовать json-файл в xml-файл с C#. Но это исключение.

Код есть;

private void TakeXML() 
    { 
     string json = ReadText(); 

     XmlDocument doc = (XmlDocument)Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json); 

     XmlTextWriter writer = new XmlTextWriter("json.xml", null); 
     writer.Formatting = Formatting.Indented; 
     doc.Save(writer); 
    } 

Функция ReadText:

private string ReadText() 
    { 
     FileStream fs = new FileStream(@"C:\Users\Sinan\Desktop\bina.json", FileMode.Open, FileAccess.Read); 
     StreamReader sr = new StreamReader(fs); 
     string json; 
     try 
     { 
      json = sr.ReadToEnd(); 
      return json; 

     } 
     catch (Exception) 
     { 
      return null; 
     } 
     finally 
     { 

      sr.Close(); 
      fs.Dispose(); 
     } 
    } 

для XmlDocument doc = (XmlDocument)Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json); линия, он сказал, что;

«Корневой объект JSON имеет несколько свойств. Корневой объект должен иметь одно свойство, чтобы создать допустимый XML-документ. Рассмотрим описание DeserializeRootElementName».

Я ищу решение этой проблемы, но я ее не нашел. Если вы поможете мне в этом отношении, я буду рад. Спасибо.

+0

Создать DataTable из XML, а затем есть различные способы Ара, чтобы получить из JSON DataTable. –

+0

Моя потребность - «преобразование Json в Xml». Не «конвертирование Xml в Json». –

+0

Извините за неправильное использование, используйте http://stackoverflow.com/questions/11981282/how-to-convert-json-to-datatable-in-c-sharp –

ответ

2

В методе DeserializeXmlNode указать имя корневого узла в качестве второго параметра, как показано на рисунке код:

XmlDocument doc = 
    (XmlDocument) 
    Newtonsoft.Json.JsonConvert.DeserializeXmlNode(json, "rootNodeName"); 
                // second parameter 

Хотя, если вы можете дать JSon строку, то было бы легко дать точный ответ.

Ссылка ссылка: Converting JSON to XML