JSON Pointer built on the System.Text.Json namespace
$ dotnet add package JsonPointer.NetJsonPointer.Net implements the JSON Pointer specification RFC 6901, a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.
Parse a pointer:
var pointer = JsonPointer.Parse("/objects/and/3/arrays");
Build it manually:
var pointer = JsonPointer.Create("object", "and", 3, "arrays");
Or generate using an LINQ expression:
var pointer = JsonPointer.Create<MyObject>(x => x.objects.and[3].arrays);
Use the pointer to query JsonElement:
using var element = JsonDocument.Parse("{\"objects\":{\"and\":[\"item zero\",null,2,{\"arrays\":\"found me\"}]}}");
var result = pointer.Evaluate(element.RootElement);
// result: "found me"
or JsonNode:
var element = JsonNode.Parse("{\"objects\":{\"and\":[\"item zero\",null,2,{\"arrays\":\"found me\"}]}}");
var success = pointer.TryEvaluate(element, out var result);
// success: true
// result: "found me"