RM.JsonMapper 0.0.4

dotnet add package RM.JsonMapper --version 0.0.4
NuGet\Install-Package RM.JsonMapper -Version 0.0.4
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RM.JsonMapper" Version="0.0.4" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add RM.JsonMapper --version 0.0.4
#r "nuget: RM.JsonMapper, 0.0.4"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install RM.JsonMapper as a Cake Addin
#addin nuget:?package=RM.JsonMapper&version=0.0.4

// Install RM.JsonMapper as a Cake Tool
#tool nuget:?package=RM.JsonMapper&version=0.0.4

JsonMapper

Description

Map json object to another json dynamiclly using config
download source and more example : https://github.com/vahidarya14/RM.JsonMapper

sample usage source:

with this config rule

        string _config = @"
f: FirstName,
l: LastName,
t:x.y.z.title,
n.m.f:FirstName,
p.q.r.f:FirstName,
p.q.r.l:LastName,
c.c:ContactDetails.Country,
a2:arr[2],
a2b:arr[2].b,
arr:arr
";

there are two ways to map jsons

using this keeps [mapping config] as rule and does all mapping using this config. no need to pass config as parameter every time

 var mapper = new JsonMapper(_config);

or using static function without makeing instance of JsonMapper.it doen't keep any states and just fires and forgets

    JsonMapper.Map<Source, Dest>(sourceObject, _config);

more sample

        var sourceObject=new Source()
        {
            //...
        };

        var destObj = new JsonMapper(_config).Map<Source, Dest>(sourceObject);
        var destObjUsingStatic = JsonMapper.Map<Source, Dest>(sourceObject, _config);
        var destObjUsingWithConfig = new JsonMapper().WithConfig(_config).Map<Source, Dest>(sourceObject);

or

        string _json = @"{
        FirstName: ""Audrey"",
        ""LastName"": ""Spencer"",
        ""ContactDetails"": {
            ""Country"": ""Spain""
        },
        x:{
            y:{
                z:{
                    title:""t_54""
                }
            }
        },
        arr:[{a:'a1',b:'b1'},{a:'a2',b:'b2'},{a:'a3',b:'b3'}]
    }";

    var destObj = new JsonMapper(_config).Map< Dest>(_json);
    var destinationObject = JsonMapper.Map<Dest>(_json,_config);

for inline list mapping config

ArrTarget:ArrSource{
        AgeOfVehicle:Age,
        FullName:Name
    }

here is the complete sample

 string _config = @"
Year: Year,
ArrTarget:ArrSource{
        AgeOfVehicle:Age,
        FullName:Name
    }
";
    _source =new Source3{
            Year=1986,
            ArrSource=new List<Arr3>
            {
                new Arr3(){Age=20,Name="ford"},
                new Arr3(){Age=30,Name="benz"}
            }
        };

 var destObj = new JsonMapper(_config).Map<Source3, Dest3>(_source);

Product Compatible and additional computed target framework versions.
.NET net7.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net7.0

    • No dependencies.

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
0.0.4 140 8/7/2023