Json.NET 8.0 Release 1

Json.NET 8.0 Release 1 announced with new features, changes, and fixes.

Json.NET is a JSON framework for .NET; it's faster than .NET's built-in JSON serializers. A new stable version has been released with following new features, changes, and fixes:

New features:

  • IArrayPool and a setting on JsonTextReader and JsonTextWriter.
  • JsonReader.ReadAsDouble.
  • JsonLoadSettings and CommentHandling to control loading comments in LINQ to JSON.
  • JsonLoadSettings.LineInfoHandling.
  • Support for JsonConstructorAttribute on list and dictionary collections.
  • Support for deserializing string to Version.
  • ShouldDeserialize to JsonProperty.
  • Required.DisallowNull.
  • Support for converting JSON to XML with invalid XML name chracters.
  • Improved case-insensitive deserialization performance.
  • Improved date parsing performance.

Changes

  • Changed ReadAsDateTime, ReadAsDateTimeOffset, ReadAsBytes, ReadAsString, ReadAsInt32 on JsonReader from abstract to virtual.
  • Changed parsing JArrays to not include comments by default.
  • Changed JTokenWriter to use the last property instead of erroring when there are duplicate property names.
  • Changed Uri JValues to use OriginalString when written to JSON.
  • Changed DateTimeOffset JValues to return TypeCode.Object from IConvertible.GetTypeCode(). 

Fixes:

  • Fixed converting JSON metadata array value to XML.
  • Fixed not including line information with some XML conversion errors.
  • Fixed error when writing certain JSON with escaped characters.
  • Fixed PopulateObject error when JSON starts with a comment.
  • Fixed incorrect IJsonLineInfo line position after the first line.
  • Fixed JSONPath when querying against Uri, Guid and Date values.
  • Fixed JsonReader.Path when the path is escaped.
  • Fixed writing JRaw twice when a TraceWriter is set.
  • Fixed getting the wrong value when reading certain large integers.
  • Fixed deserializing DataSet with a null DataTable.
  • Fixed deserializing a null DataSet.
  • Fixed error when serializing F# discriminated unions in Windows Store apps.
  • Fixed error serializing some types when there are conflicting interface properties.
  • Fixed error when settings ReferenceResolver is set to null.
  • Fixed DateTimeZoneHandling not being used when writing DateTime dictionary keys.
  • Fixed bug when converting an integer JValue to a nullable enum.
  • Fixed converting null string JValue to XML.
  • Fixed Mono generic class private field serialization bug.
  • Fixed error when deserializing ignored property with mismatched type.
  • Fixed deserializing to a type when setting JToken extension data.
  • Fixed setting default values onto properties already set in constructor.
  • Fixed casting dynamic JValue to JToken.
  • Fixed serializing non-zero based arrays.
  • Fixed reading 24 hour midnight ISO dates. 
 You can download the build  from here.
 
Reference Links:

"