Skip to content

Releases: Zastai/MetaBrainz.Common.Json

6.0.2

01 Jan 14:34
Compare
Choose a tag to compare

👻 Maintenance

6.0.1

19 Dec 12:39
Compare
Choose a tag to compare

📦 Dependency Updates

📝 Documentation Updates

6.0.0

15 Dec 23:32
Compare
Choose a tag to compare

This version targets net6.0 and net8.0 only.

🚀 New Features and Improvements

  • Add JsonUtils.Deserialize overloads for Stream (#38) @Zastai
  • Use trace source (#37) @Zastai
  • Drop conditional compilation for debugging (#35) @Zastai

📦 Dependency Updates

📝 Documentation Updates

👻 Maintenance

5.1.0

27 Jan 22:47
Compare
Choose a tag to compare

🚀 New Features and Improvements

📦 Dependency Updates

👻 Maintenance

5.0.0

13 Nov 14:31
Compare
Choose a tag to compare

💥 Breaking Changes

  • Update to C# version 10 (#21) @Zastai
    • This drops the use of [CLSCompliant]; this is technically a breaking change (although it is unlikely to affect anyone).

🚀 New Features and Improvements

  • Update SDK (#20) @Zastai
    • This changes the target frameworks to net6.0, netstandard2.1, netstandard2.0, and net48.

📦 Dependency Updates

  • Update SDK (#20) @Zastai
    • MetaBrainz.Build.Sdk → 2.1.1
  • Update MetaBrainz.Build.Sdk to version 2.0.0 (#18) @Zastai
    • System.Text.Json → 6.0.0

4.0.1

06 Nov 16:58
Compare
Choose a tag to compare

v4.0.1 (2021-11-06)

  • Changed the license to MIT (from MS-PL)
  • Changed target frameworks to netstandard2.0, netstandard2.1, and net472

Dependency Updates

  • JetBrainz.Annotations → 2021.3.0
  • MetaBrainz.Build.Sdk → 1.0.1
  • System.Text.Json → 5.0.2

4.0.0

13 Aug 20:06
Compare
Choose a tag to compare

v4.0.0 (2020-12-23)

  • Switch to a NuGet SDK package (MetaBrainz.Build.Sdk) instead of a Git submodule

API Additions

  • Two non-null variations of Utf8JsonReader.GetString() were added:
    • GetStringValue() for String nodes
    • GetPropertyName() for PropertyName nodes

Dependency Updates

  • System.Text.Json → 5.0.0

3.0.1

10 May 12:41
Compare
Choose a tag to compare

v3.0.1 (2020-05-10)

This makes the output of Prettify() pretty again. Indented writing was previously only enabled in debug builds, so essentially never when consuming the NuGet package.

3.0.0

25 Apr 17:24
Compare
Choose a tag to compare

v3.0.0 (2020-04-25)

API Additions

  • New Extension Method Overload: JsonUtils.GetObject<T>() without a specific converter to use
  • New Extension Method Overload: JsonUtils.GetOptionalObject<T>() without a specific converter to use

API Changes

  • JsonBasedObject: this once again has a regular Dictionary as UnhandledProperties
    • this allows implementation types to modify the contents after the initial object creation
    • this is, unfortunately, a breaking change

2.0.0

24 Apr 21:33
Compare
Choose a tag to compare

v2.0.0 (2020-04-24)

API Additions

  • New Method: JsonUtils.CreateReaderOptions(), optionally specifying a set of converters to register
  • New Method: JsonUtils.CreateWriterOptions(), optionally specifying a set of converters to register
  • New Method: JsonUtils.DeserializeAsync()
  • New Extension Method: JsonUtils.GetObject()
  • New Extension Method: JsonUtils.GetOptionalBoolean()
  • New Extension Method: JsonUtils.GetOptionalByte()
  • New Extension Method: JsonUtils.GetOptionalDateTimeOffset()
  • New Extension Method: JsonUtils.GetOptionalDecimal()
  • New Extension Method: JsonUtils.GetOptionalDouble()
  • New Extension Method: JsonUtils.GetOptionalGuid()
  • New Extension Method: JsonUtils.GetOptionalInt16()
  • New Extension Method: JsonUtils.GetOptionalInt32()
  • New Extension Method: JsonUtils.GetOptionalInt64()
  • New Extension Method: JsonUtils.GetOptionalObject()
  • New Extension Method: JsonUtils.GetOptionalSbyte()
  • New Extension Method: JsonUtils.GetOptionalSingle()
  • New Extension Method: JsonUtils.GetOptionalUInt16()
  • New Extension Method: JsonUtils.GetOptionalUInt32()
  • New Extension Method: JsonUtils.GetOptionalUInt64()
  • New Extension Method: JsonUtils.GetOptionalUri()
  • New Extension Method: JsonUtils.GetOptionalValue()
  • New Extension Method: JsonUtils.GetUri()
  • New Extension Method: JsonUtils.GetValue()
  • New Extension Method: JsonUtils.ReadDictionary()
  • New Extension Method: JsonUtils.TryGetUri()

API Changes

  • AnyObjectReader is now a JsonReader<object> instead of JsonReader<object?> and will no longer deserialize a JSON null
    • this is a breaking change
    • note: it will still handle nulls inside arrays or objects it deserializes
  • JsonBasedObject.UnhandledProperties is now an IReadOnlyDictionary<string, object?>? instead of Dictionary<string, object?>?
    and is no longer marked [JsonExtensionData]
    • this is a breaking change
  • JsonUtils.ReadList() is now an extension method
  • JsonUtils.WriteList() is now an extension method
  • JsonUtils.ReadList() now takes the serializer options as the last argument
    • this is a breaking change

API Removals

  • AnyObjectConverter has been removed
    • it has been superseded by AnyObjectReader
  • InterfaceConverter and ReadOnlyListOfInterfaceConverter have been removed
    • the MetaBrainz libraries are switching to custom converters for everything, removing the need for these