Home JsonPointer.Net
JsonPointer.Net
Cancel

JsonPointer.Net

4.0.1.x

#711 - Nuget package meta-data updates; no functional changes from previous version.

4.0.1

Fixed issue with equality operators on PointerSegment when dealing with nulls.

4.0.0

Updated for multi-framework support with .Net Standard 2.0 and .Net 8 with Native AOT support, including updating System.Text.Json from v6 to v8.

Breaking changes

  • Dropping support for .Net Standard 3.1 - May still be used, but exact behavior cannot be guaranteed.
  • CharExtensions removed as it was not used.

Additions

JsonPointer.TypeInfoResolver to expose all of the type resolvers contained in the library. Can be used to create a combined SerializationOptions by using a Json.More.TypeResolverOptionsManager in your JsonSerializerContext.

3.3.0

#585 - Added support for TypeConverter so that an application config can properly convert to JSON Pointer in config models. Thanks to @wazzamatazz for raising the issue and providing the implementation.

3.2.2

Implemented support for index modifiers for Relative JSON Pointers (e.g. the +1 in 0+1/foo), which apparently just weren’t supported.

3.2.1

#555 - JSON Pointer creation using Linq expressions should support using local variables in indexers. Thanks to @OmiCron07 for suggesting.

3.2.0

#549 - Expose JSON converters for all types to support JSON source generation.

3.1.0

Enhanced support for creating pointers via Linq expressions.

  • Added support for the Linq method .Last() to generate a - segment which indicates the index beyond the last item in an array.
  • Added support for [JsonPropertyName] attribute.
  • Added support for custom naming transformations.

3.0.3

Improved performance for JsonPointer.ToString() by caching the string representation so that it’s only generated once.

3.0.2

Memory and performance improvements.

3.0.1

#408 - Fixed an issue where an empty string segment fails for array values. Thanks to @mbj2011 for finding and reporting this.

3.0.0

Updated model to more correctly represent a basic JSON Pointer.

  • URL encoding is merely a formatting concern
  • Removed UrlEmpty
  • Parse() and TryParse() are still tolerant of URL encoded pointers and will decode automatically
  • Removed Source property as ToString() is the default method for getting a string
  • Renamed JsonPointerKind to JsonPointerStyle to reflect the formatting nature of its purpose
  • Added ToString(JsonPointerKind) to support outputting in URL encoded format

Added implicit cast from int to PointerSegment. Previously, only a cast from uint existed, but typing ints is easier.

2.2.1 (no PR)

#288 - Just bumping version to allow dependent packages to pick up the latest Json.More.Net by default, which is transitively pulled via this package.

2.2.0

Updated System.Text.Json to version 6 in order to add JsonNode support.

The API is shaped a bit differently for JsonNode than the existing API for JsonElement. Specifically, it exposes

1
bool TryEvaluate(JsonNode node, out JsonNode? result)

instead of the Evaluate() call you’ve all come to know and love.

This is because .Net decided to do a silly thing and represent JSON null using .Net null. This decision means that a null returned here cannot be distinguished between not existing and existing with a value of JSON null.

RelativeJsonPointer is now implemented! …for JsonNode.

2.1.0

#184 - @JanKnipp added array (e.g. int[]) support to Linq expression construction of pointers.

2.0.0

#171 - Updated JsonPointer, PointerSegment, and RelativeJsonPointer from struct to class since it holds by-reference data anyway. Removes parameterless constructor for these types. These changes make them better immutable models.

1.4.0

  • Added implicit casts from int and string to PointerSegment
  • Added params overload for JsonPointer.Create().

1.3.3

#123 - Removed a copy/paste error that shows up while deserializing relative pointers. Thanks to @bastiaantenklooster for finding this and creating a PR to fix it.

1.3.2

Added support for nullable reference types.

1.3.1

Signed the DLL for strong name compatibility.

1.3.0

Added support pointer creation using lambda expressions, e.g. x => x.foo[5].bar to create /foo/5/bar.

1.2.0

Added support for array index manipulation in Relative JSON Pointer 2 (spec updated alongside JSON Schema Draft 2020-12).

1.1.2

Added debug symbols to package. No functional change.

1.1.1

Updated reference to Json.More.Net.

1.1.0

Added JsonPointerKind enumeration.

Added JsonPointer.Kind property.

Added optional parameters to JsonPointer.Parse() and JsonPointer.TryParse().

1.0.0

Initial release.

Contents