using AgileObjects.AgileMapper;
public static void Main()
.CreateInstancesUsing(ctx => JsonDocument.Parse(ctx.Source.RootElement.GetRawText(), default));
string p = "[{\"a\":\"new\"}]";
JsonDocument source = JsonDocument.Parse(p);
JsonDocument result = Mapper.Map(source).ToANew<JsonDocument>();
Console.WriteLine("Source: " + source.RootElement);
Console.WriteLine("Result: " + result.RootElement);
Console.WriteLine("Equal? " + source.RootElement.Equals(result.RootElement));
NewClassA A = new NewClassA();
NewClassB B = new NewClassB();
var mapper = Mapper.Map(A).Over(B);
Console.WriteLine("Source: " + A.Json.RootElement);
Console.WriteLine("Result: " + mapper.Json.RootElement);
Console.WriteLine("Result: " + B.Json.RootElement);
Console.WriteLine("Equal? " + A.Json.RootElement.Equals(mapper.Json.RootElement));
public JsonDocument Json {get;set;}
Json = JsonDocument.Parse( "[{\"a\":\"old\"}]");
public JsonDocument Json {get;set;}