![]() |
VOOZH | about |
dotnet add package NFluent.Json --version 2.2.0
NuGet\Install-Package NFluent.Json -Version 2.2.0
<PackageReference Include="NFluent.Json" Version="2.2.0" />
<PackageVersion Include="NFluent.Json" Version="2.2.0" />Directory.Packages.props
<PackageReference Include="NFluent.Json" />Project file
paket add NFluent.Json --version 2.2.0
#r "nuget: NFluent.Json, 2.2.0"
#:package NFluent.Json@2.2.0
#addin nuget:?package=NFluent.Json&version=2.2.0Install as a Cake Addin
#tool nuget:?package=NFluent.Json&version=2.2.0Install as a Cake Tool
NFluent Extensions for JsonElement.
Check.That(jsonElement1).HasNullValue();
Check.That(jsonElement2).HasStringValue("foo");
Check.That(jsonElement2).HasStringValue("Foo", StringComparison.OrdinalIgnoreCase);
Check.That(jsonElement3).HasIntValue(42);
Check.That(jsonElement4).HasLongValue(2147483648);
Check.That(jsonElement5).HasBoolValue(true);
Check.That(jsonElement6).IsTrue();
Check.That(jsonElement7).IsFalse();
Check.That(jsonElement7).HasGuidValue(expectedGuid);
Check.That(jsonElement9).HasArrayValue(new[]{1, 2});
Check.That(jsonElement10).HasArrayValueEquivalentTo(new[]{2, 1});
Check.That(jsonElement11).HasSize(3); // works for string and array elements
Check.That(jsonElement12).IsEmpty; // works for string and array elements
Check.That(jsonElement).HasProperty("foo");
Check.That(jsonElement).HasProperty("foo", JsonValueKind.String);
Check.That(jsonElement).HasStringProperty("stringProperty", "value");
Check.That(jsonElement).HasStringProperty("stringProperty", "Value", StringComparison.OrdinalIgnoreCase);
Check.That(jsonElement).HasBoolProperty("boolProperty", expectedValue: true);
Check.That(jsonElement).HasIntProperty("intProperty", 42);
Check.That(jsonElement).HasLongProperty("longProperty", 2147483648);
Check.That(jsonElement).HasNullProperty("nullProperty");
Check.That(jsonElement).HasGuidProperty("guidProperty", expectedGuid);
Check.That(jsonElement).HasArrayProperty("arrayProperty", new[] { 1, 2 });
Check.That(jsonElement).HasArrayPropertyEquivalentTo("arrayProperty", new[] { 2, 1 });
Check.That(jsonElement).HasProperty("arrayProperty").HasSize(4);
Check.That(jsonElement).HasProperty("otherArrayProperty").IsEmpty;
Check.That(jsonElement).HasProperty("stringProperty").HasSize(2);
Check.That(jsonElement).HasProperty("otherStringProperty").IsEmpty;
Check.That(jsonElement).HasSingleElementAt("$.foo.bar");
Check.That(jsonElement).HasAtleastOneElementAt("$.foo.array[*]");
Check.That(jsonElement).HasMultipleElementsAt("$.foo.otherArray[*]");
Check.That(jsonElement).HasElementsCountAt("$.foo.thirdArray[*]", 4);
Note that it supports simplified expressions making the
$and$.suffixes optional. For example, the following expressions are equivalent:
$.foo.barcan be written as.foo.barorfoo.bar$[0].foocan be written as[0].foo
The JsonElement extension methods GetElementAt and GetRequiredElementAt allow you to retrieve a specific inner element using a JSON path expression.
var foo = jsonElement.GetElementAt("$.foo"); // foo can be null if no element is found
var bar = jsonElement.GetRequiredElementAt("$.bar"); // bar cannot be null (throws if no element is found)
Note that it supports simplified expressions making the
$and$.suffixes optional. For example, the following expressions are equivalent:
$.foo.barcan be written as.foo.barorfoo.bar$[0].foocan be written as[0].foo
The ReadJsonRootElementAsync extension method allows you to read a JsonElement from a HttpContent object.
var requestJson = await httpRequestMessage.Content.ReadJsonRootElementAsync();
Check.That(requestJson).HasIntProperty("foo", 42);
var responseJson = await httpResponseMessage.Content.ReadJsonElementAsync();
Check.That(responseJson).HasArrayValueEquivalentTo(new []{ 1, 2, 3 });
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 net6.0 is compatible. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 was computed. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.