JsonCons.JmesPath
1.0.0
dotnet add package JsonCons.JmesPath --version 1.0.0
NuGet\Install-Package JsonCons.JmesPath -Version 1.0.0
<PackageReference Include="JsonCons.JmesPath" Version="1.0.0" />
<PackageVersion Include="JsonCons.JmesPath" Version="1.0.0" />
<PackageReference Include="JsonCons.JmesPath" />
paket add JsonCons.JmesPath --version 1.0.0
#r "nuget: JsonCons.JmesPath, 1.0.0"
#:package JsonCons.JmesPath@1.0.0
#addin nuget:?package=JsonCons.JmesPath&version=1.0.0
#tool nuget:?package=JsonCons.JmesPath&version=1.0.0
JsonCons.JmesPath
The JsonCons.JmesPath library complements the functionality of the System.Text.Json namespace with an implementation of JMESPath. It targets .Net Standard 2.1.
The libray supports applying a JMESPath expression to transform a JsonDocument/JsonElement instance into another JsonDocument instance with code like this:
using System;
using System.Text.Json;
using JsonCons.JmesPath;
public static class Example
{
// Source: https://jmespath.org/examples.html#filters-and-multiselect-lists
public static void Main(string[] args)
{
string jsonString = @"
{
""people"": [
{
""age"": 20,
""other"": ""foo"",
""name"": ""Bob""
},
{
""age"": 25,
""other"": ""bar"",
""name"": ""Fred""
},
{
""age"": 30,
""other"": ""baz"",
""name"": ""George""
}
]
}
";
using JsonDocument doc = JsonDocument.Parse(jsonString);
var transformer = JsonTransformer.Parse("people[?age > `20`].[name, age]");
using JsonDocument result = transformer.Transform(doc.RootElement);
var serializerOptions = new JsonSerializerOptions() {WriteIndented = true};
Console.WriteLine(JsonSerializer.Serialize(result.RootElement, serializerOptions));
}
}
Output:
[
[
"Fred",
25
],
[
"George",
30
]
]
Documentation and examples may be found here:
| 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. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | 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.1
- System.Text.Json (>= 5.0.2)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on JsonCons.JmesPath:
| Package | Downloads |
|---|---|
|
Cratis.Chronicle.XUnit.Integration
xUnit integration-testing support for Cratis Chronicle - the open-source (MIT) event-sourcing database and runtime. Fixtures and helpers for integration tests against an in-process kernel. |
|
|
ConfirmSteps.Net
A simple testing suite to confirm the sequence of steps |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 259,752 | 8/25/2021 |
Initial release