JsonTransformation 1.0.1
dotnet add package JsonTransformation --version 1.0.1
NuGet\Install-Package JsonTransformation -Version 1.0.1
<PackageReference Include="JsonTransformation" Version="1.0.1" />
paket add JsonTransformation --version 1.0.1
#r "nuget: JsonTransformation, 1.0.1"
// Install JsonTransformation as a Cake Addin #addin nuget:?package=JsonTransformation&version=1.0.1 // Install JsonTransformation as a Cake Tool #tool nuget:?package=JsonTransformation&version=1.0.1
What is this
.NET Standard library allows to transform source Newtonsoft.Json.Linq.JToken object recursively using extendable "Transformers"
Note: Current implementation actually MUTATES source node provided for transformation
Examples:
Loading linked files:
//entryFile.json:
{
"linkedFile": { "$file": "shared.json" }
}
///shared.json:
{
"myFile2Prop1": 123
}
// new JsonTransformationService(new LoadFileTransform()).Transform(entryFileJToken):
{
"linkedFile": {
"myFile2Prop1": 123
}
}
Merging by jpath:
//file.json:
{
"templates": {
"t1": {
"tp1": 123,
"tp2": "Hello world"
}
},
"jobs": {
"job1": {
"job1Prop1": 1235,
"$merge": "$.templates.t1"
}
}
}
//new JsonTransformationService(new MergeTransform()).Transform(fileJToken.SelectToken("$.jobs.job1"));
{
"job1Prop1": 1235,
"tp1": 123,
"tp2": "Hello world"
}
Setting Parameters:
// file.json:
{
"templates": {
"t1": {
"name": { "$useParameter": "jobName" },
"tp1": 123,
"tp2": "Hello world"
}
},
"jobs": {
"job1": {
"job1Prop1": 1235,
"$merge": "$.templates.t1",
"$setParameters": {
"jobName": "My Job 1"
}
}
}
}
//new JsonTransformationService( new MergeTransform(), new ParametersTransform())
// .Transform(fileJToken.SelectToken("$.jobs.job1")):
{
"job1Prop1": 1235,
"name": "My Job 1",
"tp1": 123,
"tp2": "Hello world"
}
Extensibility
If you need additional transformers, just implement interface ICanTransformJson and add it in ctor parameters of your jsonTransformationService instance.
Installation
Use nuget package: https://www.nuget.org/packages/JsonTransformation/
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 | 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
- Newtonsoft.Json (>= 12.0.2)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on JsonTransformation:
Package | Downloads |
---|---|
Cloud.DataAccess.GenericRepository.UOM
Package Description |
|
AshelyMuleQueue
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.