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()); }