Пример #1
0
        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>
        }