public static void JSON2XML() { string json = @"{ ""header"": ""myheader"", ""transaction"": { ""date"": ""2019-09-24"", ""items"": [ { ""number"": ""123"", ""unit"": ""EA"", ""qty"": 6 }, { ""number"": ""456"", ""unit"": ""CS"", ""qty"": 4 } ] } }"; using (var r = ChoJSONReader.LoadText(json)) { var x = r.FirstOrDefault(); //Console.WriteLine(x.Dump()); Console.WriteLine(ChoXmlWriter.ToText(x, new ChoXmlRecordConfiguration().Configure(c => { c.RootName = "Root1"; //c.DoNotEmitXmlNamespace = true; //c.TurnOffXmlFormatting = true; }))); } }
static void QuickDynamicTest() { ArrayList al = new ArrayList(); al.Add(1); al.Add("abc"); List <int> lint = new List <int>() { 1, 2 }; Hashtable ht = new Hashtable(); ht.Add(1, "abc"); ChoSerializableDictionary <int, string> dict = new ChoSerializableDictionary <int, string>(); dict.Add(1, "abc"); List <ExpandoObject> objs = new List <ExpandoObject>(); dynamic rec1 = new ExpandoObject(); rec1.Id = 1; rec1.Name = "Mark"; rec1.IsActive = true; rec1.Message = new ChoCDATA("Test"); rec1.Array = al; rec1.Lint = lint; //rec1.HT = ht; rec1.Dict = dict; objs.Add(rec1); dynamic rec2 = new ExpandoObject(); rec2.Id = 2; rec2.Name = "Jason"; rec2.IsActive = true; rec2.Message = new ChoCDATA("Test"); objs.Add(rec2); StringBuilder sb = new StringBuilder(); using (var parser = new ChoXmlWriter(sb).WithXPath("Employees/Employee")) { parser.Write(objs); } Console.WriteLine(sb.ToString()); var a = ChoXmlReader.LoadText(sb.ToString()).ToArray(); var config = new ChoXmlRecordConfiguration(); //config.Configure(c => c.RootName = "Root"); Console.WriteLine(ChoXmlWriter.ToText(a.First(), config)); }