Json.NET v12.0.2 Release Notes

Release Date: 2019-04-22 // 6 months ago
    • 🆕 New feature - Added MissingMemberHandling to JsonObjectAttribute and JsonObjectContract
    • 🆕 New feature - Added constructor to JTokenReader to specify initial path
    • 🆕 New feature - Added JsonProperty.IsRequiredSpecified
    • 🆕 New feature - Added JsonContract.InternalConverter
    • 🔄 Change - Moved embedded debug symbols in NuGet package to a symbol package on NuGet.org
    • 🛠 Fix - Fixed deserializing nullable struct collections
    • 🛠 Fix - Fixed memory link when serializing enums to named values
    • 🛠 Fix - Fixed error when setting JsonLoadSettings.DuplicatePropertyNameHandling to Replace

Previous changes from v12.0.1

    • 🆕 New feature - Added NuGet package signing
    • 🆕 New feature - Added Authenticode assembly signing
    • 🆕 New feature - Added SourceLink support
    • 🆕 New feature - Added constructors to StringEnumConverter for setting AllowIntegerValue
    • 🆕 New feature - Added JsonNameTable and JsonTextReader.PropertyNameTable
    • 🆕 New feature - Added line information to JsonSerializationException
    • 🆕 New feature - Added JObject.Property overload with a StringComparison
    • 🆕 New feature - Added JsonMergeSettings.PropertyNameComparison
    • 🆕 New feature - Added support for multiple Date constructors with JavaScriptDateTimeConverter
    • 🆕 New feature - Added support for strict equals and strict not equals in JSON Path queries
    • 🆕 New feature - Added EncodeSpecialCharacters setting to XmlNodeConverter
    • 🆕 New feature - Added trace message for serializing to non-writable properties
    • 🆕 New feature - Added support for NamingStrategy to StringEnumConverter
    • 🆕 New feature - Added JsonLoadSettings.DuplicatePropertyNameHandling setting
    • 🔄 Change - JTokenReader now uses JsonReader.DateTimeZoneHandling setting for date values
    • 🔄 Change - Excluded TargetSite when serializing Exceptions without SerializableAttribute
    • 🔄 Change - Changed StringEnumConverter.ctor(bool camelCaseText) to obsolete
    • 🔄 Change - Changed StringEnumConverter.CamelCaseText to obsolete
    • 🛠 Fix - Fixed incorrect overflow when reading decimal values from JSON
    • 🛠 Fix - Fixed error message when trying to deserialize an abstract serializable type
    • 🛠 Fix - Fixed parsing decimals from a string with an exponent
    • 🛠 Fix - Fixed losing DateTime.Kind when deserializing ISO date strings
    • 🛠 Fix - Fixed calling constructors with ref and in parameters
    • 🛠 Fix - Fixed rare race condition in name table when serializing
    • 🛠 Fix - Fixed unhelpful exception message when unable to convert JSON value to DateTime
    • 🛠 Fix - Fixed error when deserializing empty array in DataTable
    • 🛠 Fix - Fixed deserializing empty string to empty byte array
    • 🛠 Fix - Fixed blank extension data values with required properties and deserializing with constructor
    • 🛠 Fix - Fixed ignored values being set in extension data when deserializing
    • 🛠 Fix - Fixed comparing equal integer and floating point values in JSON Path
    • 🛠 Fix - Fixed BsonReader when reading multiple content
    • 🛠 Fix - Fixed setting extension data with existing key
    • 🛠 Fix - Fixed including array attribute in XML with namespaces when converting JSON to XML
    • 🛠 Fix - Fixed error when serializing ref struct properties by excluding them from serialization