public void Example() { #region Usage var user = new { Name = "James", Age = 30, Enabled = true, Roles = new[] { "Publisher", "Administrator" } }; StringWriter sw = new StringWriter(); using (XmlWriter xmlWriter = XmlWriter.Create(sw, new XmlWriterSettings { OmitXmlDeclaration = true })) using (XmlJsonWriter writer = new XmlJsonWriter(xmlWriter)) { writer.Formatting = Formatting.Indented; JsonSerializer serializer = new JsonSerializer(); serializer.Serialize(writer, user); } Console.WriteLine(sw.ToString()); //<Root type="Object"> // <Name type="String">James</Name> // <Age type="Integer">30</Age> // <Enabled type="Boolean">true</Enabled> // <Roles type="Array"> // <Item type="String">Publisher</Item> // <Item type="String">Administrator</Item> // </Roles> //</Root> #endregion sw = new StringWriter(); using (XmlWriter xmlWriter = XmlWriter.Create(sw, new XmlWriterSettings { OmitXmlDeclaration = true })) using (XmlJsonWriter writer = new XmlJsonWriter(xmlWriter)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("Null"); writer.WriteNull(); writer.WritePropertyName("String"); writer.WriteValue("This is a string!"); writer.WritePropertyName("Char"); writer.WriteValue('!'); writer.WritePropertyName("Integer"); writer.WriteValue(123); writer.WritePropertyName("DateTime"); writer.WriteValue(new DateTime(2001, 2, 22, 20, 59, 59, DateTimeKind.Utc)); writer.WritePropertyName("DateTimeOffset"); writer.WriteValue(new DateTimeOffset(2001, 2, 22, 20, 59, 59, TimeSpan.FromHours(12))); writer.WritePropertyName("Float"); writer.WriteValue(1.1f); writer.WritePropertyName("Double"); writer.WriteValue(3.14d); writer.WritePropertyName("Decimal"); writer.WriteValue(19.95m); writer.WritePropertyName("Guid"); writer.WriteValue(Guid.NewGuid()); writer.WritePropertyName("Uri"); writer.WriteValue(new Uri("http://james.newtonking.com")); writer.WritePropertyName("Array"); writer.WriteStartArray(); writer.WriteValue(1); writer.WriteValue(2); writer.WriteValue(3); writer.WriteEndArray(); writer.WritePropertyName("Object"); writer.WriteStartObject(); writer.WritePropertyName("String"); writer.WriteValue("This is a string!"); writer.WritePropertyName("Null"); writer.WriteNull(); writer.WriteEndObject(); writer.WritePropertyName("Constructor"); writer.WriteStartConstructor("Date"); writer.WriteValue(2000); writer.WriteValue(12); writer.WriteValue(30); writer.WriteEndConstructor(); writer.WriteEndObject(); writer.Flush(); } Console.WriteLine(sw.ToString()); //<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="Integer">2</Item> // <Item type="Integer">3</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> }
public void Example() { StringWriter sw = new StringWriter(); using (XmlWriter xmlWriter = XmlWriter.Create(sw, new XmlWriterSettings { OmitXmlDeclaration = true })) using (XmlJsonWriter writer = new XmlJsonWriter(xmlWriter)) { writer.Formatting = Formatting.Indented; writer.WriteStartObject(); writer.WritePropertyName("Null"); writer.WriteNull(); writer.WritePropertyName("String"); writer.WriteValue("This is a string!"); writer.WritePropertyName("Char"); writer.WriteValue('!'); writer.WritePropertyName("Integer"); writer.WriteValue(123); writer.WritePropertyName("DateTime"); writer.WriteValue(new DateTime(2001, 2, 22, 20, 59, 59, DateTimeKind.Utc)); writer.WritePropertyName("DateTimeOffset"); writer.WriteValue(new DateTimeOffset(2001, 2, 22, 20, 59, 59, TimeSpan.FromHours(12))); writer.WritePropertyName("Float"); writer.WriteValue(1.1f); writer.WritePropertyName("Double"); writer.WriteValue(3.14d); writer.WritePropertyName("Decimal"); writer.WriteValue(19.95m); writer.WritePropertyName("Guid"); writer.WriteValue(Guid.NewGuid()); writer.WritePropertyName("Uri"); writer.WriteValue(new Uri("http://james.newtonking.com")); writer.WritePropertyName("Array"); writer.WriteStartArray(); writer.WriteValue(1); writer.WriteValue(2); writer.WriteValue(3); writer.WriteEndArray(); writer.WritePropertyName("Object"); writer.WriteStartObject(); writer.WritePropertyName("String"); writer.WriteValue("This is a string!"); writer.WritePropertyName("Null"); writer.WriteNull(); writer.WriteEndObject(); writer.WritePropertyName("Constructor"); writer.WriteStartConstructor("Date"); writer.WriteValue(2000); writer.WriteValue(12); writer.WriteValue(30); writer.WriteEndConstructor(); writer.WriteEndObject(); writer.Flush(); } Console.WriteLine(sw.ToString()); //<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="Integer">2</Item> // <Item type="Integer">3</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> }