JSONPathPredicate 1.0.0
Has thread-safety issue which is resolved in v1.1.0
dotnet add package JSONPathPredicate --version 1.0.0
NuGet\Install-Package JSONPathPredicate -Version 1.0.0
<PackageReference Include="JSONPathPredicate" Version="1.0.0" />
<PackageVersion Include="JSONPathPredicate" Version="1.0.0" />
<PackageReference Include="JSONPathPredicate" />
paket add JSONPathPredicate --version 1.0.0
#r "nuget: JSONPathPredicate, 1.0.0"
#:package JSONPathPredicate@1.0.0
#addin nuget:?package=JSONPathPredicate&version=1.0.0
#tool nuget:?package=JSONPathPredicate&version=1.0.0
JSONPathPredicate v1.0.0
A powerful .NET library for evaluating string-based predicate expressions against JSON objects using JSONPath syntax.
Features
- JSONPath Support: Access
nestedobject properties usingdotnotation - Multiple Operators:
eq(equal),in(contains),not(not equal),gt(greater than),gte(greater than or equal),lt(less than),lte(less than or equal) - Logical Operators:
and,orwith proper precedence handling - Type Safety:
Automatictype conversion and validation - Complex Expressions:
Parenthesesgrouping andnestedoperations - Lightweight:
Minimaldependencies,fastevaluation
Installation
Install via NuGet Package Manager:
Install-Package JsonPathPredicate
Code Syntax
i. Expression Syntax
The expression syntax is ([JSONPath] [Comparison Operator] [Value]) [Logical Operator] ([JSONPath] [Comparison Operator] [Value])
ii. Supported Operators
- Comparison Operators -
eq,in,gt,gte,lt,lte&Not - Logical Operators -
and&or
Example
var customer = new {
client = new {
address = new {
postcode = "e113et",
number = 123,
active = true
},
tags = new[] { "vip", "premium" }
},
score = 95.5
};
i. Simple equality
bool result1 = JSONPredicate.Evaluate("client.address.postcode eq `e113et`", customer);
ii. Logical operators
bool result2 = JSONPredicate.Evaluate("client.address.postcode eq `e113et` and client.address.number eq 123", customer);
iii. Array operations
bool result3 = JSONPredicate.Evaluate("client.tags in [`vip`, `standard`]", customer);
Contributing
- Fork the repository
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
License
This project is licensed under the MIT License - see the license file for details.
Support
- 📖 Read the Documentation
- 🐛 If you are having problems, please let us know by raising a new issue here.
- 💬 Ask questions on Discussions
| 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 is compatible. 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 | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 is compatible. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETFramework 4.6.2
- System.Text.Json (>= 9.0.8)
-
.NETStandard 2.0
- System.Text.Json (>= 9.0.8)
-
.NETStandard 2.1
- System.Text.Json (>= 9.0.8)
-
net9.0
- System.Text.Json (>= 9.0.8)
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 |
|---|
v1.0.0 - Includes core functionality for evaluating string-based predicate expressions against JSON objects using JSONPath syntax.