Releases: Zastai/MetaBrainz.Common.Json
Releases · Zastai/MetaBrainz.Common.Json
6.0.2
6.0.1
6.0.0
This version targets net6.0
and net8.0
only.
🚀 New Features and Improvements
- Add
JsonUtils.Deserialize
overloads forStream
(#38) @Zastai - Use trace source (#37) @Zastai
- Drop conditional compilation for debugging (#35) @Zastai
📦 Dependency Updates
- Update
JetBrains.Annotations
to version 2023.3.0 (#33) @Zastai - Update
MetaBrainz.Build.Sdk
to v3.1.1 (#32, #39) @Zastai - Update
MetaBrainz.Common
to v2.1.0 (#34, #40) @Zastai
📝 Documentation Updates
👻 Maintenance
5.1.0
5.0.0
💥 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).
- This drops the use of
🚀 New Features and Improvements
- Update SDK (#20) @Zastai
- This changes the target frameworks to
net6.0
,netstandard2.1
,netstandard2.0
, andnet48
.
- This changes the target frameworks to
📦 Dependency Updates
4.0.1
4.0.0
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()
forString
nodesGetPropertyName()
forPropertyName
nodes
Dependency Updates
- System.Text.Json → 5.0.0
3.0.1
3.0.0
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
asUnhandledProperties
- this allows implementation types to modify the contents after the initial object creation
- this is, unfortunately, a breaking change
2.0.0
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 aJsonReader<object>
instead ofJsonReader<object?>
and will no longer deserialize a JSONnull
- this is a breaking change
- note: it will still handle
null
s inside arrays or objects it deserializes
JsonBasedObject.UnhandledProperties
is now anIReadOnlyDictionary<string, object?>?
instead ofDictionary<string, object?>?
and is no longer marked[JsonExtensionData]
- this is a breaking change
JsonUtils.ReadList()
is now an extension methodJsonUtils.WriteList()
is now an extension methodJsonUtils.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
- it has been superseded by
InterfaceConverter
andReadOnlyListOfInterfaceConverter
have been removed- the MetaBrainz libraries are switching to custom converters for everything, removing the need for these