Skip to main content

SystemTextJson

NuGet Version NuGet Downloads

System.Text.Json serialization support for FluentDynamoDB. This is the recommended serialization package for new projects, especially those targeting AOT compilation.

Installation​

dotnet add package Oproto.FluentDynamoDb.SystemTextJson

Key Features​

  • High Performance - Leverages System.Text.Json's optimized serialization
  • Source Generation - Optional source-generated serializers for AOT
  • Custom Converters - Built-in converters for DynamoDB-specific types
  • Flexible Configuration - Full control over serialization options via FluentDynamoDbOptions

Quick Start​

Configure System.Text.Json at runtime using FluentDynamoDbOptions:

using Oproto.FluentDynamoDb;
using Oproto.FluentDynamoDb.SystemTextJson;

// Default options
var options = new FluentDynamoDbOptions()
.WithSystemTextJson();

var table = new DocumentTable(dynamoDbClient, "documents", options);

Custom JsonSerializerOptions​

Pass custom JsonSerializerOptions to control serialization behavior:

var jsonOptions = new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
WriteIndented = false,
DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull
};

var options = new FluentDynamoDbOptions()
.WithSystemTextJson(jsonOptions);

var table = new DocumentTable(dynamoDbClient, "documents", options);

AOT-Compatible Configuration​

For Native AOT scenarios, use a JsonSerializerContext to enable source-generated serialization:

// 1. Define your JSON context with types that need serialization
[JsonSerializable(typeof(DocumentContent))]
[JsonSerializable(typeof(List<string>))]
public partial class DocumentJsonContext : JsonSerializerContext
{
}

// 2. Configure FluentDynamoDbOptions with the context
var options = new FluentDynamoDbOptions()
.WithSystemTextJson(DocumentJsonContext.Default);

var table = new DocumentTable(dynamoDbClient, "documents", options);

Documentation​

For complete documentation including entity definitions, usage examples, and custom converters, see the System.Text.Json Serialization Guide.

NuGet​

View on NuGet.org