예제 #1
0
 /// <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));
 }
예제 #2
0
        /// <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;
        }
예제 #3
0
        /// <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;
        }
예제 #4
0
 /// <summary>
 /// Writes end of an object
 /// </summary>
 public Task WriteEndObjectAsync(CancellationToken cancellationToken = default(CancellationToken))
 {
     LastWrittenToken = WrittenToken.EndObject;
     return(TextWriter.WriteAsync("}"));
 }
예제 #5
0
 /// <summary>
 /// Writes start of an object
 /// </summary>
 public Task WriteStartObjectAsync(CancellationToken cancellationToken = default(CancellationToken))
 {
     LastWrittenToken = WrittenToken.StartObject;
     return(TextWriter.WriteAsync('{'));
 }
예제 #6
0
 /// <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"));
 }
예제 #7
0
 /// <summary>
 /// Writes end of an array.
 /// </summary>
 public Task WriteEndArrayAsync(CancellationToken cancellationToken = default(CancellationToken))
 {
     LastWrittenToken = WrittenToken.EndArray;
     return(TextWriter.WriteAsync("]"));
 }