Rulewright.Json.SystemText
0.3.0
dotnet add package Rulewright.Json.SystemText --version 0.3.0
NuGet\Install-Package Rulewright.Json.SystemText -Version 0.3.0
<PackageReference Include="Rulewright.Json.SystemText" Version="0.3.0" />
<PackageVersion Include="Rulewright.Json.SystemText" Version="0.3.0" />
<PackageReference Include="Rulewright.Json.SystemText" />
paket add Rulewright.Json.SystemText --version 0.3.0
#r "nuget: Rulewright.Json.SystemText, 0.3.0"
#:package Rulewright.Json.SystemText@0.3.0
#addin nuget:?package=Rulewright.Json.SystemText&version=0.3.0
#tool nuget:?package=Rulewright.Json.SystemText&version=0.3.0
Rulewright.Json.SystemText
The System.Text.Json adapter for Rulewright:
implements IRuleJsonReader so the engine can read rule documents, plus helpers for using
JSON payloads as facts.
Install
dotnet add package Rulewright.Json.SystemText
Already included in Rulewright — install
this directly only if you reference Rulewright.Execution piecewise. Prefer
Rulewright.Json.NewtonsoftJson
if your application already standardises on Newtonsoft.Json; the two are parity-tested against
each other, and swapping adapters is the only change.
Read rule documents
var engine = new RulewrightBuilder()
.UseJsonReader(new SystemTextJsonReader())
.Build();
Comments and trailing commas are tolerated, so hand-written rule files stay pleasant to edit.
Malformed JSON surfaces as RuleParseException.
Use a JSON payload as a fact
SystemTextJsonFacts.ToDictionary converts a JsonElement into the dictionary shape the
engine's interpreter evaluates — useful when facts arrive as JSON over HTTP and there is no
CLR type to bind them to.
using JsonDocument payload = JsonDocument.Parse(requestBody);
Dictionary<string, object?> fact = SystemTextJsonFacts.ToDictionary(payload.RootElement);
RuleEvaluationResult result = engine.Evaluate(ruleSet, fact);
// result.CompilationMode == CompilationMode.Interpreted
Nested objects become nested dictionaries and arrays become object?[]. Numbers become long
when integral, otherwise decimal when exactly representable, otherwise double — the same
policy the rule parser applies to constants, so a fact and a rule constant of the same JSON
text compare as equal.
Requirements
.NET Framework 4.8, .NET Standard 2.0, .NET 8.0 or .NET 10.0. System.Text.Json is in-box from .NET 8 on; the down-level legs take a package reference for it.
License
MIT.
| 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 is compatible. 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 is compatible. 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 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 is compatible. 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.8
- Rulewright.Serialization (>= 0.3.0)
- System.Text.Json (>= 10.0.10)
-
.NETStandard 2.0
- Rulewright.Serialization (>= 0.3.0)
- System.Text.Json (>= 10.0.10)
-
net10.0
- Rulewright.Serialization (>= 0.3.0)
-
net8.0
- Rulewright.Serialization (>= 0.3.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Rulewright.Json.SystemText:
| Package | Downloads |
|---|---|
|
Rulewright
The Rulewright rule engine — everything you need in one package: the core domain model, JSON parsing and schema validation, the expression-tree evaluation engine, the System.Text.Json adapter, and the built-in custom functions. Rules are plain JSON; evaluation is compiled expression trees. Install this unless you want to pick pieces individually. |
GitHub repositories
This package is not used by any popular GitHub repositories.
See https://github.com/albahadly/rulewright/releases for release notes.