New feature:
· Added ItemIsReference, ItemReferenceLoopHandling, ItemTypeNameHandling, ItemConverterType to JsonPropertyAttribute
· Added ItemRequired to JsonObjectAttribute
· Added Path to JsonWriterException
Changes:
· Improved deserializer call stack memory usage
· Moved the PDB files out of the NuGet package into a symbols package
Fixes:
· Fixed infinite loop from an input error when reading an array and error handling is enabled
· Fixed base object error not being handled when deserializing
New features:
· Added Portable Class Library build
· Added support for customizing the JsonConverter, type name handling and reference handling of collection items
· Added Path to JsonReaderException/JsonSerializationException messages
· Added DateParseHandling to JsonReader
· Added JsonContainerContract
· Added JsonDictionaryAttribute
Changes:
· Instances of Exception have been changed to be a more specific exception
Fixes:
· Fixed Windows 8 Application Certification tool error by removing AllowPartiallyTrustedCallersAttribute from assembly
· Fixed JsonWriters not using DateTimeZoneHandling
Change:
· DefaultContractResolver.IgnoreSerializableAttribute is now true by default.
Fixed:
· MaxDepth on JsonReader recursively throwing an error.
· SerializationBinder.BindToName not being called with full assembly names.
New feature:
· Added support for the SerializableAttribute and serializing a type's internal fields
· Added MaxDepth to JsonReader/JsonSerializer/JsonSerializerSettings
· Added support for ignoring properties with the NonSerializableAttribute
Fixes:
· Fixed deserializing a null string throwing a NullReferenceException
· Fixed JsonTextReader reading from a slow stream
· Fixed CultureInfo not being overridden on JsonSerializerProxy
· Fixed full trust security check in .NET 2.0 & .NET 3.5
· Fixed XmlNodeConverter not turning all attribute properties into attributes
· Fixed comparing JObjects to ignore property order
· Fixed reading invalid unicode surrogate pairs
New feature:
· Windows 8 Metro build
· JsonTextReader automatically reads ISO strings as dates
· Added DateFormatHandling to control whether dates are written in the MS format or ISO format, with ISO as the default
· Added DateTimeZoneHandling to control reading and writing DateTime time zone details
· Added async serialize/deserialize methods to JsonConvert
· Added Path to JsonReader/JsonWriter/ErrorContext and exceptions with the JSON path of the current position
· Added collection type to JsonArrayContract
· Added dictionary key type and dictionary value type to JsonDictionaryContract
· Added reader/writer specific Formatting, DateFormatHandling and DateTimeZoneHandling to JsonSerializerSettings
· Added ReadAsDate and ReadAsString to JsonReader
· Added IgnoreSerializableInterface to DefaultContractResolver
Changes:
· Dates are now serialized as the ISO format by default
· The ReadAsXXX methods on JsonReader now return null at the end of an array instead of throwing an error
· JsonReaders now to set TokenType to JsonToken.None after finishing content
· Deserializing will fallback to use a private default constructor
· The error message when deserializing a JSON object/array onto the wrong kind of type is more descriptive
· Serializing ISerializable types under partial trust now errors to fix potential security issue
Fixes:
· Fixed reading scientific notation numbers with no decimal point
· Fixed LinqBridge collision error in .NET 2.0 by moving types to a different namespace
· Fixed error when deserializing nullable types with no content
· Fixed JObject.Keys null reference error when the object has no items
· Fixed error handling when failing to parse array content
· Fixed error handling when there are missing required properties
· Fixed performance issue when building deeply nested JSON to LINQ to JSON objects
New feature:
· Added VersionConverter for System.Version
· Added a JSON schema IsValid overload that returns a list of error messages
Changed:
· NuGet Silverlight/Windows Phone assembies are no longer strong-named
Fixes:
· Fixed Json.NET attributes on nullable struct properties not being used
· Fixed deserializing nullable enums
· Fixed JsonConstructor incorrectly being allowed on properties
· Fixed empty string being changed to null when deserializing object properties
· Fixed not replacing ignored properties when resolving an object's contract
· Fixed JsonReader.ReadAsDateTimeOffset throwing an incorrect error message
· Fixed error when converting XML to JSON with a default namespace
· Fixed JsonValidatingReader.ReadAsBytes throwing an exception
· Fixed a unit test failing because of the running computer’s timezone
· Moved Culture property from JsonTextReader to JsonReader.
· Fixed circular reference error when serializing nullable struct properties.
· Fixed JsonReader.ReadAsXXX methods not converting string values.
New features:
· Added line number information to deserialization errors
· Added ReadAsInt32 to JsonReader
· Added BinaryReader/BinaryWriter constructor overloads to BsonReader/BsonWriter
Changes:
· JsonTextReader error message when additional JSON content found is more descriptive
Fixes:
· Removed unused utility methods
· Fixed elusive Intellitrace runtime destabilization error
· Fixed internal exception thrown when deserializing Decimal/DateTimeOffset/Byte lists
· Fixed potential multi-threading serializing issue
· Fixed serializing types that hides a base classes property with a proeprty of the same name
· Fixed BsonReader to use BinaryReader instead of base stream
· Fixed referencing the NuGet package from Windows Phone 7.1 projects
· Fixed referencing the NuGet package from Windows Phone 7.1 projects.
Changed:
· JsonTextReader.Culture is now CultureInfo.InvariantCulture by default
· KeyValurPairConverter no longer cares about the order of the key and value properties
· Time zone conversions now use new TimeZoneInfo instead of TimeZone
Fixes:
· Fixed boolean values sometimes being capitalized when converting to XML
· Fixed error when deserializing ConcurrentDictionary
· Fixed serializing some Uris returning the incorrect value
· Fixed occasional error when converting non-long integer properties to XML
· Fixed deserializing byte arrays with type name information
· Fixed flag enum items not being correctly camel cased
· Fixed JsonValidatingReader validating the first array item twice
· Fixed JsonSchema not correctly validating integers as a subset of decimal
· Fixed bad BSON when writing long strings of complex UTF8 characters
· Fixed error not being raised for additional content in JSON string for JArray.Parse and JObject.Parse
· Fixed DataTableConverter including nulls with NullValueHandling.Ignore
New features:
· Improved support for deserializing objects using non-default constructors
· JsonConverterAttribute now allowed on constructor parameters
· JsonPropertyAttribute now allowed on constructor parameters
· Added Serializable attribute to exceptions
· JsonObject and JsonProperty attributes can now be placed on an interface and used when serializing implementing objects
· Improve TypeNameHandling.Auto to skip adding an unneeded type name for collection interfaces
· LINQ to JSON internals rewritten to use lists and dictionaries rather than linked lists
· Added support for deserializing to readonly collections and dictionaries on classes with non-default constructors
· Added serialization constructors to all Exceptions
· Added support for serialization event attributes on base classes
· Added support for BindToName on SerializationBinder
· Missing JSON errors can now be handled using JsonSerializer error handling
· Added Populate and IgnoreAndPopulate options to DefaultValueHandling for automatically populating default values during deserialization
· Added support for setting readonly fields when marked up with JsonPropertyAttribute
· Added Order to JsonPropertyAttribute to override the order of serialized JSON
· Added Culture to JsonTextReader to use when converting values from JSON text
· Added support for reading byte arrays from JSON integer arrays
· Added support for deserializing IDictionary properties
· Added ToObject to JToken for deserializing LINQ to JSON objects to a .NET object
· Added support for Guid, TimeSpan and Uri to LINQ to JSON
Changes:
· Changed WriteEndObject, WriteEndArray, WriteEndConstructor on JsonWriter to be virtual
· Moved JPropertyDescriptor to Newtonsoft.Json.Linq namespace
· Additional content after the $ref property now ignored when reading schema references
· Changed JToken.Children to return an empty iterator rather than erroring
· Changed the assembly file names to all be Newtonsoft.Json.dll to fix NuGet referencing
· Changed $id and $ref properties to allow null
Bug fixes:
· Changed .NET 2.0 version to use LinqBridge source code rather than ilmerge to fix error
· Fixed deserializing to IEnumerable<T> properties
· Fixed DataTable and DataColumn names not being modified by CamelCasePropertyNamesContractResolver
· Fixed JObject loading JSON with comments
· Fixed error when using a Specified property with no setter
· Fixed transient constructor error on Windows Phone 7
· Fixed deserializing null values into nullable generic dictionaries
· Fixed potential casting error when writing JSON using a JsonReader
· Fixed converting emtpy XML elements with an array attribute not writing other attributes
· Fixed deserializing null values into DataTables
· Fixed error when deserializing readonly IEnumerable<T> array properties
· Fixed not including type name for byte[] values
· Fixed BsonWriter failing silently when writing values outside of an Object or Array
· Fixed serializer attempting to use dynamic code generation in partial trust
· Fixed serializing objects with DataContract and DataMember attributes on base classes