我正在尝试将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 []
中对问题元素进行少量编辑。但没有奏效。
答案 0 :(得分:10)
根据Mitchell Skurnik的comment,您可以使用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)
当数组中只有一个值时,此方法有效。这不支持父节点上的多个阵列。