Extensions for System.Text.Json.
Add the O9d.Json.Formatting package from NuGet
dotnet add package O9d.Json.Formatting
If you want to use a pre-release package, you can download them GitHub packages.
This O9d.Json.Formatting library adds support for snake_case formatting to System.Text.Json which is still missing. The included implementation originates from the Newtonsoft.Json project.
To configure snake case formatting when using JsonSerializer
directly:
var options = new JsonSerializerOptions()
{
PropertyNamingPolicy = new JsonSnakeCaseNamingPolicy()
};
string json = JsonSerializer.Serialize(someObj, options);
To configure snake case formatting in an ASP.NET Core MVC project:
services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = new JsonSnakeCaseNamingPolicy()
});
Or in ASP.NET 6.0 Minimal APIs:
builder.Services.Configure<JsonOptions>(options =>
{
options.SerializerOptions.PropertyNamingPolicy = new JsonSnakeCaseNamingPolicy());
});
Pre-release packages can be downloaded from GitHub Packages.
dotnet add package O9d.Json.Formatting --prerelease --source https://nuget.pkg.github.com/benfoster/index.json
More information on using GitHub packages with .NET.
This project uses Cake to build, test and publish packages.
Run build.sh
(Mac/Linux) or build.ps1
(Windows) To build and test the project.
This will output NuGet packages and coverage reports in the artifacts
directory.
To contribute to O9d.Json, fork the repository and raise a PR. If your change is substantial please open an issue first to discuss your objective.
The JSON documentation is built using DocFx. To build and serve the docs locally run:
./build.sh --target ServeDocs
This will serve the docs on http://localhost:8080.