-2

how can i convert JSON to XML using JSON.NET like this:

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

to

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

1 Answers1

1

Once you've parsed your object, pass it to a function like this.

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);
    }
}
Jeff Mercado
  • 129,526
  • 32
  • 251
  • 272
  • i want to convert it dynamically at levels. so i want the XML converter check if JSON Value is string or Integer write it as XML Attribute otherwise, make it XML Element – Saif Mar 11 '14 at 08:01
  • Well naturally you have to check the type of the value and create the appropriate object. I've added something you could do. – Jeff Mercado Mar 14 '14 at 23:40