Class SystemTextJsonSerializer
A JSON serializer based on System.Text.Json.
Inheritance
Implements
Namespace: Couchbase.Core.IO.Serializers
Assembly: Couchbase.NetClient.dll
Syntax
public abstract class SystemTextJsonSerializer : object, IExtendedTypeSerializer, IProjectableTypeDeserializer, IStreamingTypeDeserializer, ITypeSerializer
Remarks
This class is currently experimental and subject to change. It does not support all serialization features supported by the DefaultSerializer. Known limitations currently include:
- Couchbase.Transactions is not currently supported.
-
No support for
dynamic
types. -
Some properties of QueryMetaData which use
dynamic
, such as Profile and Signature, are not populated. -
View-style queries are not supported using
JsonSerializerContext
, only reflection-based serialization. -
Any use of
should be replaced with or object
.
Properties
| Improve this Doc View SourceDeserializationOptions
Provides custom deserialization options. Options not listed in SupportedDeserializationOptions will be ignored. If null, then defaults will be used.
Declaration
public DeserializationOptions DeserializationOptions { get; set; }
Property Value
Type | Description |
---|---|
DeserializationOptions |
Options
Declaration
public abstract JsonSerializerOptions Options { get; }
Property Value
Type | Description |
---|---|
JsonSerializerOptions |
SupportedDeserializationOptions
Informs consumers what deserialization options this IExtendedTypeSerializer supports.
Declaration
public SupportedDeserializationOptions SupportedDeserializationOptions { get; }
Property Value
Type | Description |
---|---|
SupportedDeserializationOptions |
Methods
| Improve this Doc View SourceCreate(JsonSerializerContext)
Create a new SystemTextJsonSerializer using a supplied
Declaration
public static SystemTextJsonSerializer Create(JsonSerializerContext context)
Parameters
Type | Name | Description |
---|---|---|
JsonSerializerContext | context |
Returns
Type | Description |
---|---|
SystemTextJsonSerializer | A new SystemTextJsonSerializer. |
Remarks
This overload should be used to supply custom serializers on a per-request basis that are optimized for the particular
type being serialized or deserialized. Any type which isn't registered in the
Create(JsonSerializerOptions)
Create a new SystemTextJsonSerializer with supplied
Declaration
public static SystemTextJsonSerializer Create(JsonSerializerOptions options)
Parameters
Type | Name | Description |
---|---|---|
JsonSerializerOptions | options |
Returns
Type | Description |
---|---|
SystemTextJsonSerializer | A new SystemTextJsonSerializer. |
Create(Boolean)
Create a new SystemTextJsonSerializer with default options, optionally enabling increased Newtonsoft.Json compatibility.
Declaration
public static SystemTextJsonSerializer Create(bool increasedNewtonsoftCompatibility = false)
Parameters
Type | Name | Description |
---|---|---|
System.Boolean | increasedNewtonsoftCompatibility | Enable increased Newtonsoft.Json compatibility. |
Returns
Type | Description |
---|---|
SystemTextJsonSerializer | A new SystemTextJsonSerializer. |
Remarks
The increasedNewtonsoftCompatibility
parameter doesn't make this fully compatible with Newtonsoft.Json.
However, it does enable several features to make it more compatible such as case-insensitive property name deserialization,
ignoring comments and trailing commas, serializing public fields, etc. For details on compatibility, see
https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-to
CreateJsonStreamReader(Stream)
Create an IJsonStreamReader for parsing a
Declaration
public abstract IJsonStreamReader CreateJsonStreamReader(Stream stream)
Parameters
Type | Name | Description |
---|---|---|
Stream | stream |
Returns
Type | Description |
---|---|
IJsonStreamReader | The new IJsonStreamReader. |
CreateProjectionBuilder(ILogger)
Create a new IProjectionBuilder based on this serializer.
Declaration
public abstract IProjectionBuilder CreateProjectionBuilder(ILogger logger)
Parameters
Type | Name | Description |
---|---|---|
ILogger | logger | Logger for logging warnings or errors. |
Returns
Type | Description |
---|---|
IProjectionBuilder | A new IProjectionBuilder. |
Deserialize<T>(ReadOnlyMemory<Byte>)
Deserializes the specified buffer into the
Declaration
public abstract T Deserialize<T>(ReadOnlyMemory<byte> buffer)
Parameters
Type | Name | Description |
---|---|---|
ReadOnlyMemory<System.Byte> | buffer | The buffer to deserialize from. |
Returns
Type | Description |
---|---|
T | The |
Type Parameters
Name | Description |
---|---|
T | The |
Deserialize<T>(Stream)
Deserializes the specified stream into the
Declaration
public abstract T Deserialize<T>(Stream stream)
Parameters
Type | Name | Description |
---|---|---|
Stream | stream | The stream. |
Returns
Type | Description |
---|---|
T | The |
Type Parameters
Name | Description |
---|---|
T | The |
DeserializeAsync<T>(Stream, CancellationToken)
Deserializes the specified stream into the
Declaration
public abstract ValueTask<T> DeserializeAsync<T>(Stream stream, CancellationToken cancellationToken = null)
Parameters
Type | Name | Description |
---|---|---|
Stream | stream | The stream. |
CancellationToken | cancellationToken | Cancellation token. |
Returns
Type | Description |
---|---|
ValueTask<T> | The |
Type Parameters
Name | Description |
---|---|
T | The |
GetMemberName(MemberInfo)
Get the name which will be used for a given member during serialization/deserialization.
Declaration
public string? GetMemberName(MemberInfo member)
Parameters
Type | Name | Description |
---|---|---|
MemberInfo | member | Returns the name of this member. |
Returns
Type | Description |
---|---|
System.Nullable<System.String> | The name which will be used for a given member during serialization/deserialization, or null if if will not be serialized. |
Serialize(Stream, Nullable<Object>)
Serializes the specified object onto a stream.
Declaration
public abstract void Serialize(Stream stream, object? obj)
Parameters
Type | Name | Description |
---|---|---|
Stream | stream | The stream to receive the serialized object. |
System.Nullable<System.Object> | obj | The object to serialize. |
Remarks
This overload does not make use of
Serialize(Utf8JsonWriter, Nullable<Object>)
Serializes the specified object onto a
Declaration
public abstract void Serialize(Utf8JsonWriter stream, object? obj)
Parameters
Type | Name | Description |
---|---|---|
Utf8JsonWriter | stream | The writer to receive the serialized object. |
System.Nullable<System.Object> | obj | The object to serialize. |
Serialize<T>(Stream, T)
Serializes the specified object onto a stream.
Declaration
public abstract void Serialize<T>(Stream stream, T obj)
Parameters
Type | Name | Description |
---|---|---|
Stream | stream | The stream to receive the serialized object. |
T | obj | The object to serialize. |
Type Parameters
Name | Description |
---|---|
T | Type of object to serialize. |
Serialize<T>(Utf8JsonWriter, T)
Serializes the specified object onto a
Declaration
public abstract void Serialize<T>(Utf8JsonWriter stream, T obj)
Parameters
Type | Name | Description |
---|---|---|
Utf8JsonWriter | stream | The writer to receive the serialized object. |
T | obj | The object to serialize. |
Type Parameters
Name | Description |
---|---|
T | Type of object to serialize. |
SerializeAsync(Stream, Nullable<Object>, CancellationToken)
Serializes the specified object onto a stream.
Declaration
public abstract ValueTask SerializeAsync(Stream stream, object? obj, CancellationToken cancellationToken = null)
Parameters
Type | Name | Description |
---|---|---|
Stream | stream | The stream to receive the serialized object. |
System.Nullable<System.Object> | obj | The object to serialize. |
CancellationToken | cancellationToken | Cancellation token. |
Returns
Type | Description |
---|---|
ValueTask |
Remarks
This overload does not make use of
SerializeAsync<T>(Stream, T, CancellationToken)
Serializes the specified object onto a stream.
Declaration
public abstract ValueTask SerializeAsync<T>(Stream stream, T obj, CancellationToken cancellationToken = null)
Parameters
Type | Name | Description |
---|---|---|
Stream | stream | The stream to receive the serialized object. |
T | obj | The object to serialize. |
CancellationToken | cancellationToken | Cancellation token. |
Returns
Type | Description |
---|---|
ValueTask |
Type Parameters
Name | Description |
---|---|
T | Type of object to serialize. |