Sharpener.Json
1.0.1
dotnet add package Sharpener.Json --version 1.0.1
NuGet\Install-Package Sharpener.Json -Version 1.0.1
<PackageReference Include="Sharpener.Json" Version="1.0.1" />
<PackageVersion Include="Sharpener.Json" Version="1.0.1" />
<PackageReference Include="Sharpener.Json" />
paket add Sharpener.Json --version 1.0.1
#r "nuget: Sharpener.Json, 1.0.1"
#:package Sharpener.Json@1.0.1
#addin nuget:?package=Sharpener.Json&version=1.0.1
#tool nuget:?package=Sharpener.Json&version=1.0.1
<img src="images/sharpener-logo-40.png" align="right" style="height: 40px;" />
Sharpener.Json
A small scoped package that extends the base Sharpener
package as well as System.Text.Json
for serialization and
deserializationn.
Table of Contents
Features
The Sharpener.Json
package focuses on features for the basic runtime layer's json tooling.
- An
object
WriteJson
extension. - A
string
ReadJsonAs<T>
extension. - Configuration options for default behavior of these extensions.
- Type parameters for outlier serialization handling scenarios.
Installation
Navigate to the directory of your .csproj file and then run this command
dotnet add package Sharpener.Json
or
PM> Install-Package Sharpener.Json
Usage
WriteJson
To serialize something, you can now just write this.
var json = item.WriteJson();
Want it to stop writing indented? Create a writer.
/// <summary>
/// A serializer for System.Text.Json that does not indent.
/// </summary>
public class JsonRawWriter : IJsonWriter
{
private static JsonSerializerOptions s_options = new JsonSerializerOptions { WriteIndented = false };
/// <inheritdoc/>
public Func<object, string> Write => model => JsonSerializer.Serialize(model, s_options);
}
And now you can either explicitly use it, or register it as the default. Register as default:
SharpenerJsonSettings.SetDefaultWriter<JsonRawWriter>();
var json = item.WriteJson();
or
SharpenerJsonSettings.SetDefaultWriter((model =>
JsonSerializer.Serialize(model, new JsonSerializerOptions { WriteIndented = false })))
var json = item.WriteJson();
Explicit call, which is better for scenarios where you'd prefer not to change the default and you're accomodating an outlier scenario.
var json = item.WriteJson<JsonRawWriter>();
ReadJsonAs<TResult>
Let's deserialize something. I've got some text that can deserilialize to an Item
.
var item = json.ReadJsonAs<Item>();
And similar to the WriteJson
options above, you can add a custom deserializer of your own for ReadJsonAs
as well.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Sharpener (>= 1.0.1)
- System.Memory (>= 4.6.3)
- System.Text.Json (>= 9.0.8)
-
net8.0
- Sharpener (>= 1.0.1)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Sharpener.Json:
Package | Downloads |
---|---|
Sharpener.Rest
Quality of life tools for C# with respect to http and rest requests. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.1 | 180 | 9/2/2025 |
1.0.0 | 162 | 8/30/2025 |
0.2.4 | 260 | 9/29/2023 |
0.2.3 | 207 | 9/27/2023 |
0.2.2 | 198 | 9/27/2023 |
0.2.1 | 200 | 9/27/2023 |
0.2.0 | 192 | 9/22/2023 |
0.1.9 | 212 | 9/20/2023 |
0.1.8 | 182 | 9/14/2023 |
0.1.6 | 155 | 9/13/2023 |
0.1.5 | 244 | 4/17/2023 |
0.1.2 | 357 | 12/10/2022 |
0.1.1 | 367 | 12/8/2022 |
0.1.0 | 365 | 12/8/2022 |
0.1.0-alpha.1 | 148 | 12/8/2022 |