/// <summary> /// Emits supplied value to the writer. /// </summary> /// <param name="value"></param> /// <param name="cancellationToken"></param> public Task WriteJsonStructAsync(IJsonStruct value, CancellationToken cancellationToken = default(CancellationToken)) { if (value == null) { LastWrittenToken = WrittenToken.Null; return(TextWriter.WriteAsync("null")); } return(value.WriteAsync(this, cancellationToken)); }
/// <summary> /// Writes a Json string /// </summary> /// <param name="s"></param> /// <param name="cancellationToken"></param> public async Task WriteValueAsync(string s, CancellationToken cancellationToken = default(CancellationToken)) { await TextWriter.WriteAsync("\""); foreach (var c in s) { await WriteStringCharAync(c); } await TextWriter.WriteAsync("\""); LastWrittenToken = WrittenToken.String; }
/// <summary> /// Writes start of a property /// </summary> /// <param name="name"></param> /// <param name="cancellationToken"></param> public async Task WritePropertyNameAsync(string name, CancellationToken cancellationToken = default(CancellationToken)) { if (LastWrittenToken != WrittenToken.StartObject) { await TextWriter.WriteAsync(','); } await TextWriter.WriteAsync('\"'); await TextWriter.WriteAsync(name); await TextWriter.WriteAsync("\":"); LastWrittenToken = WrittenToken.PropertyName; }
/// <summary> /// Writes end of an object /// </summary> public Task WriteEndObjectAsync(CancellationToken cancellationToken = default(CancellationToken)) { LastWrittenToken = WrittenToken.EndObject; return(TextWriter.WriteAsync("}")); }
/// <summary> /// Writes start of an object /// </summary> public Task WriteStartObjectAsync(CancellationToken cancellationToken = default(CancellationToken)) { LastWrittenToken = WrittenToken.StartObject; return(TextWriter.WriteAsync('{')); }
/// <summary> /// Writes a boolean /// </summary> /// <param name="boolean"></param> /// <param name="cancellationToken"></param> public Task WriteValueAsync(bool boolean, CancellationToken cancellationToken = default(CancellationToken)) { LastWrittenToken = WrittenToken.Boolean; return(TextWriter.WriteAsync(boolean ? "true" : "false")); }
/// <summary> /// Writes end of an array. /// </summary> public Task WriteEndArrayAsync(CancellationToken cancellationToken = default(CancellationToken)) { LastWrittenToken = WrittenToken.EndArray; return(TextWriter.WriteAsync("]")); }