public void Example() { #region Usage string xml = @"<Root type=""Object""> <Null type=""Null"" /> <String type=""String"">This is a string!</String> <Char type=""String"">!</Char> <Integer type=""Integer"">123</Integer> <DateTime type=""Date"">2001-02-22T20:59:59Z</DateTime> <DateTimeOffset type=""Date"">2001-02-22T20:59:59+12:00</DateTimeOffset> <Float type=""Float"">1.1</Float> <Double type=""Float"">3.14</Double> <Decimal type=""Float"">19.95</Decimal> <Guid type=""Guid"">d66eab59-3715-4b35-9e06-fa61c1216eaa</Guid> <Uri type=""Uri"">http://james.newtonking.com</Uri> <Array type=""Array""> <Item type=""Integer"">1</Item> <Item type=""Bytes"">SGVsbG8gd29ybGQh</Item> <Item type=""Boolean"">True</Item> </Array> <Object type=""Object""> <String type=""String"">This is a string!</String> <Null type=""Null"" /> </Object> <Constructor type=""Constructor"" name=""Date""> <Item type=""Integer"">2000</Item> <Item type=""Integer"">12</Item> <Item type=""Integer"">30</Item> </Constructor> </Root>"; StringReader sr = new StringReader(xml); using (XmlReader xmlReader = XmlReader.Create(sr, new XmlReaderSettings { IgnoreWhitespace = true })) using (XmlJsonReader reader = new XmlJsonReader(xmlReader)) { JObject o = JObject.Load(reader); //{ // "Null": null, // "String": "This is a string!", // "Char": "!", // "Integer": 123, // "DateTime": "2001-02-23T09:59:59+13:00", // "DateTimeOffset": "2001-02-22T21:59:59+13:00", // "Float": 1.1, // "Double": 3.14, // "Decimal": 19.95, // "Guid": "d66eab59-3715-4b35-9e06-fa61c1216eaa", // "Uri": "http://james.newtonking.com", // "Array": [ // 1, // "SGVsbG8gd29ybGQh", // true // ], // "Object": { // "String": "This is a string!", // "Null": null // }, // "Constructor": new Date(2000, 12, 30) //} } #endregion using (XmlReader xmlReader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings { IgnoreWhitespace = true })) using (XmlJsonReader reader = new XmlJsonReader(xmlReader)) { Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartObject, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Null", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Null, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("String", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("This is a string!", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Char", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("!", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Integer", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(123L, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("DateTime", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Date, reader.TokenType); Assert.AreEqual(DateTime.Parse("2001-02-22T20:59:59Z"), reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("DateTimeOffset", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Date, reader.TokenType); Assert.AreEqual(DateTime.Parse("2001-02-22T20:59:59+12:00"), reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Float", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Float, reader.TokenType); Assert.AreEqual(1.1d, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Double", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Float, reader.TokenType); Assert.AreEqual(3.14d, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Decimal", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Float, reader.TokenType); Assert.AreEqual(19.95d, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Guid", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("d66eab59-3715-4b35-9e06-fa61c1216eaa", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Uri", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("http://james.newtonking.com", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Array", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartArray, reader.TokenType); Assert.AreEqual(1, reader.ReadAsInt32()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(1L, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Bytes, reader.TokenType); Assert.AreEqual(Encoding.UTF8.GetBytes("Hello world!"), reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Boolean, reader.TokenType); Assert.AreEqual(true, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndArray, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Object", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartObject, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("String", reader.Value); Assert.AreEqual("This is a string!", reader.ReadAsString()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("This is a string!", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Null", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Null, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndObject, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Constructor", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartConstructor, reader.TokenType); Assert.AreEqual("Date", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(2000L, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(12L, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(30L, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndConstructor, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndObject, reader.TokenType); Assert.IsFalse(reader.Read()); } }
public void Example() { #region Usage string xml = @"<Root type=""Object""> <Null type=""Null"" /> <String type=""String"">This is a string!</String> <Char type=""String"">!</Char> <Integer type=""Integer"">123</Integer> <DateTime type=""Date"">2001-02-22T20:59:59Z</DateTime> <DateTimeOffset type=""Date"">2001-02-22T20:59:59+12:00</DateTimeOffset> <Float type=""Float"">1.1</Float> <Double type=""Float"">3.14</Double> <Decimal type=""Float"">19.95</Decimal> <Guid type=""Guid"">d66eab59-3715-4b35-9e06-fa61c1216eaa</Guid> <Uri type=""Uri"">http://james.newtonking.com</Uri> <Array type=""Array""> <Item type=""Integer"">1</Item> <Item type=""Bytes"">SGVsbG8gd29ybGQh</Item> <Item type=""Boolean"">True</Item> </Array> <Object type=""Object""> <String type=""String"">This is a string!</String> <Null type=""Null"" /> </Object> <Constructor type=""Constructor"" name=""Date""> <Item type=""Integer"">2000</Item> <Item type=""Integer"">12</Item> <Item type=""Integer"">30</Item> </Constructor> </Root>"; StringReader sr = new StringReader(xml); using (XmlReader xmlReader = XmlReader.Create(sr, new XmlReaderSettings { IgnoreWhitespace = true })) using (XmlJsonReader reader = new XmlJsonReader(xmlReader)) { JObject o = JObject.Load(reader); //{ // "Null": null, // "String": "This is a string!", // "Char": "!", // "Integer": 123, // "DateTime": "2001-02-23T09:59:59+13:00", // "DateTimeOffset": "2001-02-22T21:59:59+13:00", // "Float": 1.1, // "Double": 3.14, // "Decimal": 19.95, // "Guid": "d66eab59-3715-4b35-9e06-fa61c1216eaa", // "Uri": "http://james.newtonking.com", // "Array": [ // 1, // "SGVsbG8gd29ybGQh", // true // ], // "Object": { // "String": "This is a string!", // "Null": null // }, // "Constructor": new Date(2000, 12, 30) //} } #endregion using (XmlReader xmlReader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings { IgnoreWhitespace = true })) using (XmlJsonReader reader = new XmlJsonReader(xmlReader)) { Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartObject, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Null", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Null, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("String", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("This is a string!", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Char", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("!", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Integer", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(123, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("DateTime", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Date, reader.TokenType); Assert.AreEqual(DateTime.Parse("2001-02-22T20:59:59Z"), reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("DateTimeOffset", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Date, reader.TokenType); Assert.AreEqual(DateTime.Parse("2001-02-22T20:59:59+12:00"), reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Float", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Float, reader.TokenType); Assert.AreEqual(1.1d, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Double", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Float, reader.TokenType); Assert.AreEqual(3.14d, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Decimal", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Float, reader.TokenType); Assert.AreEqual(19.95d, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Guid", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("d66eab59-3715-4b35-9e06-fa61c1216eaa", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Uri", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("http://james.newtonking.com", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Array", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartArray, reader.TokenType); Assert.AreEqual(1, reader.ReadAsInt32()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(1, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Bytes, reader.TokenType); Assert.AreEqual(Encoding.UTF8.GetBytes("Hello world!"), reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Boolean, reader.TokenType); Assert.AreEqual(true, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndArray, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Object", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartObject, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("String", reader.Value); Assert.AreEqual("This is a string!", reader.ReadAsString()); Assert.AreEqual(JsonToken.String, reader.TokenType); Assert.AreEqual("This is a string!", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Null", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Null, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndObject, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.PropertyName, reader.TokenType); Assert.AreEqual("Constructor", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.StartConstructor, reader.TokenType); Assert.AreEqual("Date", reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(2000, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(12, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.Integer, reader.TokenType); Assert.AreEqual(30, reader.Value); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndConstructor, reader.TokenType); Assert.IsTrue(reader.Read()); Assert.AreEqual(JsonToken.EndObject, reader.TokenType); Assert.IsFalse(reader.Read()); } }