JSON.NET DeserializeXmlNode to XML Attributes



如何使用这样的json.net将JSON转换为XML:

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

to

<Data s1="3" s2="4" /><Data s1="1" s2="9" />

您解析了对象后,将其传递给这样的函数。

IEnumerable<XElement> GetAttributedDataElements(JObject obj, string memberName)
{
    return
        from JObject o in obj[memberName].AsJEnumerable()
        select CreateNode(memberName, o);
}
XElement CreateNode(string memberName, JObject obj)
{
    return new XElement(memberName,
        from JProperty m in obj.AsJEnumerable()
        select CreateNode(m)
    );
}
XObject CreateNode(JProperty member)
{
    var value = member.Value;
    switch (value.Type)
    {
    case JTokenType.String:
    case JTokenType.Integer:
        return new XAttribute(member.Name, value);
    default:
        // assuming all others are objects
        return CreateNode(member.Name, (JObject)value);
    }
}

最新更新