无法将json转换为xml

时间:2016-02-15 07:22:51

标签: c# json xml

我正在尝试将json字符串转换为xml 1)我的json是

[  
       {  
          "QuizTitle":"asdf",
          "QuizImage":"",
          "QuizCategory":"0",
          "QuizTags":"asdf",
          "question":[  
             [  
                {  
                   "QuestionType":"1",
                   "QuestionTitle":"asdf",
                   "questionOption":[  
                      {  
                         "QuestionOptionValue":"sdf",
                         "QuestionOptionIsRight":"0"
                      },
                      {  
                         "QuestionOptionValue":"asdf",
                         "QuestionOptionIsRight":"1"
                      }
                   ]
                }
             ],
             [  
                {  
                   "QuestionType":"2",
                   "QuestionTitle":"sdfdsf",
                   "questionOption":[  
                      {  
                         "QuestionOptionValue":"asdf",
                         "QuestionOptionIsRight":"0"
                      },
                      {  
                         "QuestionOptionValue":"asdf",
                         "QuestionOptionIsRight":"1"
                      }
                   ]
                }
             ]
          ]
       }
    ]

2)我的c#代码是

XmlDocument doc = JsonConvert.DeserializeXmlNode(str);

获取以下错误:

  

错误: - XmlNodeConverter只能转换以。开头的JSON   对象

我尝试在问json remove []中对问题元素进行少量编辑。但没有奏效。

3 个答案:

答案 0 :(得分:10)

根据Mitchell Skurnikcomment,您可以使用JsonConvert.DeserializeXmlNode(JSONString, "root");

  

如果您的数据是数组,那么您需要执行以下操作:JsonConvert.DeserializeXmlNode(“{\”Row \“:”+ json +“}”,“root”)。ToXmlString()否则您将获得“XmlNodeConverter只能转换以对象开头的JSON。”异常。

     

- Mitchell Skurnik

     

2015年2月17日1:11

答案 1 :(得分:0)

<pre> public static string GetXMLFromJson(string jsonString)
        {
             string parentNote="Person";
            XDocument doc = (XDocument)JsonConvert.DeserializeXNode("{\""+ parentNote + "\":" + json + "}", "DocumentElement");
            return doc.ToString();
        } </pre>

答案 2 :(得分:0)

当数组中只有一个值时,此方法有效。这不支持父节点上的多个阵列。