Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter
1.0.0
dotnet add package Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter --version 1.0.0
NuGet\Install-Package Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter -Version 1.0.0
<PackageReference Include="Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter" Version="1.0.0" />
paket add Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter --version 1.0.0
#r "nuget: Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter, 1.0.0"
// Install Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter as a Cake Addin #addin nuget:?package=Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter&version=1.0.0 // Install Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter as a Cake Tool #tool nuget:?package=Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter&version=1.0.0
DictionaryStringObjectJsonConverter
Summary
This is an attribute and a converter on the System.Text.Json
infrastructure to deserialize a JSON string to a Dictionary<string, object>
object with each value of appropriate basic type, not System.Text.JsonElement
.
Usage
- Add the
Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter
NuGet package to your .NET project.
dotnet add package Toolbelt.Text.Json.Serialization.DictionaryStringObjectJsonConverter
- Add the
[DictionaryStringObjectJsonConverter]
attribute to a property of theDictionary<string, object>
type.
using Toolbelt.Text.Json.Serialization;
public class MyType
{
[DictionaryStringObjectJsonConverter]
public Dictionary<string, object?> Items { get; set; } = new();
}
- You can deserialize a JSON string to an object of the
Dictionary<string, object>
type.
using System.Text.Json;
var json = @"{\"items\": {
\"Lorem\": 1,
\"ipsum\": \"Two\",
\"amets\": [3.4, 5.6],
\"dolor\": true
}
}";
var obj = JsonSerializer.Deserialize<MyType>(json);
obj.Items["Lorem"]; // -> 1, typeof(int)
obj.Items["ipsum"]; // -> "Two", typeof(string)
obj.Items["amets"]; // -> new[]{ 3.4, 5.6 }, typeof(double[])
obj.Items["dolor"]; // -> true, typeof(bool)
If you didn't add the [DictionaryStringObjectJsonConverter]
attribute to a property of the Dictionary<string, object>
type, you would get all of the values in that dictionary object as the System.Text.JsonElement
struct value instead of an appropriate basic type value of the .NET.
License
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 was computed. 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. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- System.Text.Json (>= 4.6.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.0.0 | 844 | 9/12/2022 |
v.1.0.0
- 1st release.;
To see all the change logs, please visit the following URL.
- https://github.com/jsakamoto/DictionaryStringObjectJsonConverter/blob/main/RELEASE-NOTES.txt