Struct JsonWriter
- Namespace
- Nerdbank.Json
- Assembly
- Nerdbank.Json.dll
Writes JSON values to a UTF-8 buffer.
public ref struct JsonWriter
- Inherited Members
Remarks
This type is allocation-conscious and writes UTF-8 directly to an IBufferWriter<T>.
Constructors
JsonWriter(IBufferWriter<byte>)
Initializes a new instance of the JsonWriter struct.
public JsonWriter(IBufferWriter<byte> writer)
Parameters
writerIBufferWriter<byte>The destination for UTF-8 JSON bytes.
Properties
UnflushedBytes
Gets the number of bytes that have been written but not yet committed flushed to the underlying IBufferWriter<T>.
public readonly int UnflushedBytes { get; }
Property Value
WriteIndented
Gets a value indicating whether line breaks and indentation should be written.
public bool WriteIndented { readonly get; init; }
Property Value
Methods
Flush()
Ensures everything previously written has been flushed to the underlying IBufferWriter<T>.
public void Flush()
WriteBase64StringValue(byte[]?)
Writes a JSON Base64 string value.
public void WriteBase64StringValue(byte[]? value)
Parameters
valuebyte[]The value to write.
WriteBase64StringValue(ReadOnlySpan<byte>)
Writes a JSON Base64 string value.
public void WriteBase64StringValue(ReadOnlySpan<byte> value)
Parameters
valueReadOnlySpan<byte>The value to write.
WriteBooleanValue(bool)
Writes a JSON boolean literal.
public void WriteBooleanValue(bool value)
Parameters
valueboolThe value to write.
WriteEndArray()
Writes the end of a JSON array.
public void WriteEndArray()
WriteEndObject()
Writes the end of a JSON object.
public void WriteEndObject()
WriteNullValue()
Writes the JSON null literal.
public void WriteNullValue()
WriteNumberValue(byte)
Writes a JSON number value.
public void WriteNumberValue(byte value)
Parameters
valuebyteThe value to write.
WriteNumberValue(decimal)
Writes a JSON number value.
public void WriteNumberValue(decimal value)
Parameters
valuedecimalThe value to write.
WriteNumberValue(double)
Writes a JSON number value.
public void WriteNumberValue(double value)
Parameters
valuedoubleThe value to write.
WriteNumberValue(short)
Writes a JSON number value.
public void WriteNumberValue(short value)
Parameters
valueshortThe value to write.
WriteNumberValue(int)
Writes a JSON number value.
public void WriteNumberValue(int value)
Parameters
valueintThe value to write.
WriteNumberValue(long)
Writes a JSON number value.
public void WriteNumberValue(long value)
Parameters
valuelongThe value to write.
WriteNumberValue(sbyte)
Writes a JSON number value.
public void WriteNumberValue(sbyte value)
Parameters
valuesbyteThe value to write.
WriteNumberValue(float)
Writes a JSON number value.
public void WriteNumberValue(float value)
Parameters
valuefloatThe value to write.
WriteNumberValue(ushort)
Writes a JSON number value.
public void WriteNumberValue(ushort value)
Parameters
valueushortThe value to write.
WriteNumberValue(uint)
Writes a JSON number value.
public void WriteNumberValue(uint value)
Parameters
valueuintThe value to write.
WriteNumberValue(ulong)
Writes a JSON number value.
public void WriteNumberValue(ulong value)
Parameters
valueulongThe value to write.
WritePropertyName(string)
Writes a JSON property name and name separator.
public void WritePropertyName(string name)
Parameters
namestringThe property name to write.
WriteRawValue(string)
Writes a raw JSON token.
public void WriteRawValue(string value)
Parameters
valuestringThe raw JSON text to write.
WriteStartArray()
Writes the start of a JSON array.
public void WriteStartArray()
WriteStartObject()
Writes the start of a JSON object.
public void WriteStartObject()
WriteStringValue(ReadOnlySpan<char>)
Writes a JSON string value.
public void WriteStringValue(ReadOnlySpan<char> value)
Parameters
valueReadOnlySpan<char>The value to write.
WriteStringValue(string?)
Writes a JSON string value.
public void WriteStringValue(string? value)
Parameters
valuestringThe value to write.
WriteValueSeparator()
Writes a JSON value separator.
public void WriteValueSeparator()