Beispiel #1
0
        public async Task WriteJson()
        {
            var stringBuilder = new StringBuilder();

            using (var stringWriter = new StringWriter(stringBuilder))
                using (var jsonTextWriter = new JsonTextWriter(stringWriter))
                {
                    await jsonTextWriter.WriteStartObjectAsync();

                    await jsonTextWriter.WritePropertyNameAsync("hello");

                    await jsonTextWriter.WriteValueAsync("\r\n\t\"\r\" hello/utf8\\=✓\U0001D11E\U0001F602\U0001D505");

                    await jsonTextWriter.WritePropertyNameAsync("answer");

                    await jsonTextWriter.WriteValueAsync(42);

                    await jsonTextWriter.WritePropertyNameAsync("long_answer");

                    await jsonTextWriter.WriteValueAsync(42424242L);

                    await jsonTextWriter.WritePropertyNameAsync("precise_answer");

                    await jsonTextWriter.WriteValueAsync(12234.543d);

                    await jsonTextWriter.WritePropertyNameAsync("null_answer");

                    await jsonTextWriter.WriteNullValueAsync();

                    using (await jsonTextWriter.WriteObjectAsync("nested"))
                    {
                        await jsonTextWriter.WritePropertyAsync("x", 1);
                    }

                    await jsonTextWriter.WriteEndObjectAsync();
                }

            Assert.AreEqual(
                @"{""hello"":""\r\n\t\""\r\"" hello\/utf8\\=\u2713\ud834\udd1e\ud83d\ude02\ud835\udd05"",""answer"":42,""long_answer"":42424240,""precise_answer"":12234.543,""null_answer"":null,""nested"":{""x"":1}}",
                stringBuilder.ToString());
        }
        public async Task WriteAsync()
        {
            var stringBuilder = new StringBuilder();

            using (var textWriter = new StringWriter(stringBuilder))
                using (var j = new JsonTextWriter(textWriter))
                {
                    using (await j.WriteObjectAsync())
                    {
                        using (await j.WriteObjectAsync("loki"))
                        {
                            using (await j.WriteArrayAsync("streams"))
                            {
                                await j.WriteValueAsync("a");

                                await j.WriteValueAsync(1);

                                await j.WriteValueAsync(1.23);

                                await j.WriteValueAsync(1L);

                                using (await j.WriteObjectAsync())
                                {
                                    await j.WritePropertyAsync("v", 1);
                                }

                                using (await j.WriteArrayAsync())
                                {
                                    await j.WriteNullValueAsync();
                                }
                            }
                        }
                    }
                }

            Assert.AreEqual(
                "{\"loki\":{\"streams\":[\"a\",1,1.23,1,{\"v\":1},[null]]}}",
                stringBuilder.ToString());
        }