Use JsonPath to navigate through memory model objects to get and set values
$ dotnet add package JsonPathToModelUse JSONPath to navigate through .NET in-memory models
DI registration:
// program
...
services.AddJsonPathToModel(options =>
{
options.OptimizeWithCodeEmitter = true;
});
...
// constructor
public void MyService(IJsonPathModelNavigator navigator)
...
Usage:
var model = new SampleModel
{
Id = "7",
Name = "Gerry",
Nested = new([new SampleNested { Id = "xyz", Name = "Pedro" }])
};
var navi = new JsonPathModelNavigator();
var resultSingle = navi.GetValue(model, "$.Id");
navi.GetValue(model, "$.Nested[0].Name");
var resultValues = navi.SelectValues(model, "$.Nested[*].Id");
navi.SelectValues(model, "$.Nested[*].Name");
navi.SetValue(model, "$.Nested[0].Name", "Abdula");
Model:
public class SampleModel
{
public string Id { get; set; }
public string Name { get; set; }
public List<SampleNested> Nested { get; set; } = [];
}
public class SampleNested
{
public string Id { get; set; }
public string Name { get; set; }
}
Release Notes
2.3.0+
2.1.0+
2.0.0+
1.6.0+
1.5.0+
1.3.0 - 1.3.2
1.2.6
1.2.5
1.2.0 - 1.2.4:
1.0.0 - 1.1.0: