JSON.NET将XmlNode反序列化为XML属性

JSON.NET将XmlNode反序列化为XML属性,xml,json.net,xml-attribute,Xml,Json.net,Xml Attribute,如何使用JSON.NET将JSON转换为XML,如下所示: {Data : [{s1 :3, s2 :4}, {s1 :1, s2:9}]} 到 解析完对象后,将其传递给如下函数 IEnumerable GetAttributedDataElements(JObject对象,字符串memberName) { 返回 从obj[memberName].AsJEnumerable()中的JObject o 选择CreateNode(memberName,o); } XElement CreateNo

如何使用JSON.NET将JSON转换为XML,如下所示:

{Data : [{s1 :3, s2 :4}, {s1 :1, s2:9}]}


解析完对象后,将其传递给如下函数

IEnumerable GetAttributedDataElements(JObject对象,字符串memberName)
{
返回
从obj[memberName].AsJEnumerable()中的JObject o
选择CreateNode(memberName,o);
}
XElement CreateNode(字符串memberName,JObject对象)
{
返回新的XElement(memberName,
来自对象AsJEnumerable()中的JProperty m
选择CreateNode(m)
);
}
XObject CreateNode(JProperty成员)
{
var值=成员值;
开关(值.类型)
{
案例JTokenType.String:
案例JTokenType.Integer:
返回新的XAttribute(member.Name,value);
违约:
//假设所有其他对象都是对象
返回CreateNode(member.Name,(JObject)值);
}
}

我想在不同级别动态转换它。因此,我希望XML转换器检查JSON值是字符串还是整数,将其作为XML属性写入,否则,将其设置为XML元素。当然,您必须检查值的类型并创建适当的对象。我补充了一些你可以做的事情。
<Data s1="3" s2="4" /><Data s1="1" s2="9" />