Newtonsoft.Json.JsonWriter.WriteToken C# (CSharp) Method

WriteToken() private method

private WriteToken ( JsonReader reader, bool writeChildren, bool writeDateConstructorAsDate, bool writeComments ) : void
reader JsonReader
writeChildren bool
writeDateConstructorAsDate bool
writeComments bool
return void
        internal virtual void WriteToken(JsonReader reader, bool writeChildren, bool writeDateConstructorAsDate, bool writeComments)
        {
            int initialDepth;

            if (reader.TokenType == JsonToken.None)
            {
                initialDepth = -1;
            }
            else if (!JsonTokenUtils.IsStartToken(reader.TokenType))
            {
                initialDepth = reader.Depth + 1;
            }
            else
            {
                initialDepth = reader.Depth;
            }

            do
            {
                // write a JValue date when the constructor is for a date
                if (writeDateConstructorAsDate && reader.TokenType == JsonToken.StartConstructor && string.Equals(reader.Value.ToString(), "Date", StringComparison.Ordinal))
                {
                    WriteConstructorDate(reader);
                }
                else
                {
                    if (writeComments || reader.TokenType != JsonToken.Comment)
                    {
                        WriteToken(reader.TokenType, reader.Value);
                    }
                }
            } while (
                // stop if we have reached the end of the token being read
                initialDepth - 1 < reader.Depth - (JsonTokenUtils.IsEndToken(reader.TokenType) ? 1 : 0)
                && writeChildren
                && reader.Read());
        }

Same methods

JsonWriter::WriteToken ( JsonReader reader ) : void
JsonWriter::WriteToken ( JsonReader reader, bool writeChildren ) : void
JsonWriter::WriteToken ( JsonToken token ) : void
JsonWriter::WriteToken ( JsonToken token, object value ) : void

Usage Example

        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var pair = (SwaggerOperationsExtended)value;

            writer.WriteStartObject();
            var count = pair.Keys.Count;
            for (var i = 0; i < count; i++)
            {
                var key = pair.Keys.ElementAt(i);
                var oVal = pair.Values.ElementAt(i);
                
                writer.WritePropertyName(key.ToString().ToLower());

                var tokenReader = new JTokenReader(JToken.FromObject(oVal));
                writer.WriteToken(tokenReader);
            }
            writer.WriteEndObject();
        }
All Usage Examples Of Newtonsoft.Json.JsonWriter::WriteToken