How to avoid the ROOT Element when parsing from XML to JSON in C# How to avoid the ROOT Element when parsing from XML to JSON in C# xml xml

How to avoid the ROOT Element when parsing from XML to JSON in C#


JSON.Net has a SerializeXmlNode() method that can do exactly what you want. Simply pass true to the omitRootObject parameter.Observe:

string xmlPerson = @"<PersonDefinition><Person><name>Nicolas</name><age>22</age></Person><Person><name>Pankaj</name><age>25</age></Person></PersonDefinition>";XmlDocument docPerson = new XmlDocument();docPerson.LoadXml(xmlPerson);string json = JsonConvert.SerializeXmlNode(docPerson, Formatting.None, true);Console.WriteLine(json);

Output:

{"Person":[{"name":"Nicolas","age":"22"},{"name":"Pankaj","age":"25"}]}


string xml = "<PersonDefinition><Person><name>Nicolas</name><age>22</age></Person><Person><name>Pankaj</name><age>25</age></Person></PersonDefinition>";XmlSerializer xmlSerializer = new XmlSerializer(typeof(Person[]), new XmlRootAttribute("PersonDefinition"));JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();using (TextReader reader = new StringReader(xml)){    Person[] people = xmlSerializer.Deserialize(reader) as Person[];    string json = jsonSerializer.Serialize(new Person());}

Use some kind of variation of this.