JSON is a light-weight, language independent, data interchange format. In today's Internet it is a widely used format for storing and transferring data between applications and various programming languages.
Json.NET is a C# tool that can both convert to and from the JSON format, writing and reading data as needed.
The library can handle both normal .NET objects-to-JSON and vice versa, along with LINQ-to-JSON and vice versa, and XML-to-JSON and vice versa.
On top of this, Json.NET is also considerably faster than .NET's built-in JSON serializers and produces properly formatted JSON data, much more easier to read than the mangled text that the built-in serializers normally output.
Json.NET is also available via NuGet.
What is new in this release:
- New features:
- DiscriminatedUnionConverter performance improvements
- Added JsonRequiredAttribute
- Added JsonSerializerSettings.ReferenceResolverProvider property
- Added DefaultContractResolver.ResolveDictionaryKey
- Added JsonDictionaryContract.DictionaryKeyResolver
- Added support for reading GUID strings as bytes in JsonTextReader
- Added EqualityComparer to JsonSerializer
- Changes:
- Changed reading GUIDs as bytes to only support 00000000-0000-0000-0000-000000000000 format
- Renamed aspnetcore50 target to dnxcore50
- Marked JsonSchema as obsolete
- Marked DefaultContractResolver(bool) as obsolete
- Marked JsonSerializerSettings.ReferenceResolver as obsolete
- Marked JsonDictionaryContract.PropertyNameResolver as obsolete
- Fixes:
- Fixed deserializing empty strings in Hashtables
- Fixed incorrect JTokenReader.Path in certain situations
- Fixed error when serializing certain objects in medium trust
- Fixed deserializing large nullable UInt64 values
- Fixed writing large UInt64 JValues
- Fixed converting unmatched namespace prefixes in JSON to XML
- Fixed IsoDateTimeConverter on DateTime properties with DateTimeFormatHandling.DateTimeOffset
- Fixed preserving object references with read only properties
- Fixed error when deserializing large JSON integers to XML
- Fixed serializing extension data properties with no setter
- Fixed serializing discriminated unions with type name or reference tracking enabled
- Fixed DataTableConverter not using JsonSerializer settings
- Fixed resolving properties from nested interfaces
- Fixed deserializing classes derived from ConcurrentDictionary
- Fixed passing default values to constructors
- Fixed serializing root references from JsonConverters
- Fixed empty strings coerced to null not erroring with Required.Always
- Fixed invalid Required.Always error with constructor property name casing
- Fixed empty string coerce check with Required.Always and constructor
What is new in version 6.0 Release 8:
- New feature:
- Added AttributeProvider to JsonProperty
- Fixed:
- Serializing and deserializing const fields
- Using MetadataTypeAttribute with proxy classes
- Bad error message when deserializing unsupported collections
What is new in version 6.0 Release 4:
- New feature:
- Added Merge to LINQ to JSON
- Added JValue.CreateNull and JValue.CreateUndefined
- Added Windows Phone 8.1 support to .NET 4.0 portable assembly
- Added OverrideCreator to JsonObjectContract
- Added support for overriding the creation of interfaces and abstract types
- Added support for reading UUID BSON binary values as a Guid
- Added MetadataPropertyHandling.Ignore
- Improved performance of KeyValuePairConverter
- Improved performance when serializing large XML documents
- Changes:
- Limited integer parsing size to JavaScript integer size
- Validated that numbers don't end with an invalid character
- Fixes:
- Fixed JToken.ReadFrom creating a string value for a comment
- Fixed relying on Dictionary order when calling parameterized constructors
- Fixed writing new lines to use TextWriter.WriteLine
- Fixed deserializing non-generic IReadOnlyCollection<T> implementations
- Fixed sending HTTP requests when resolving DTD urls in XmlNodeConverter
- Fixed populating ignored properties with DefaultValueHandling.IgnoreAndPopulate
- Fixed not throwing JsonReaderException when parsing some invalid numbers
- Fixed JsonConvert.PopulateObject not setting JsonReader settings
What is new in version 6.0 Release 2:
- New feature:
- Added support for Windows Phone 8.1.
What is new in version 6.0 Release 1:
- New feature:
- Added support for JSONPath
- Added support for serializing F# discriminated unions
- Added support for deserializing nested DataTables and arrays in DataTables
- Added support for reading multiple pieces of JSON with a JsonReader
- Added AllowIntegerValues setting to StringEnumConverter
- Added Decimal and DateTimeOffset constructors to JValue
- Added support for reading JSON single line comments
- Improved number parsing error messages
- Change:
- Assembly version to 6.0.0.0
- .NET 4 Portable build targets MonoTouch and MonoDroid in NuGet package
- .NET 4 Portable build targets WP8 and SL5 instead of WP7 and SL4
- Removed:
- DefaultMemberSearchFlags on DefaultContractResolver is obsolete
- SerializeObjectAsync, DeserializeObjectAsync, PopulateObjectAsync on JsonConvert are obsolete
- Fixed:
- JObject ICustomTypeDescriptor properties returning incorrect value
- Error when casting dynamic base64 string to byte array
- EntityKeyMemberConverter not using property name resolve
- Serializing JValues with readonly JsonConverters
- Formatting override on SerializeObject methods
- Error when wrapping an exception in a JsonConverter
- Using extension data with a non-default constructor
- Uri serialization roundtripping with Uri.OriginalString
What is new in version 5.0 Release 7:
- New feature:
- Added support for Immutable Collections
- Added WriteData and ReadData settings to DataExtensionAttribute
- Added reference and type name handling support to extension data
- Added default value and required support to constructor deserialization
- Changes:
- Extension data is now written when serializing
- Fixes:
- Added missing casts to JToken
- Fixed parsing large floating point numbers
- Fixed not parsing some ISO date timezones
- Fixed schema validation of integer value when type was number
- Fixed writing of IConvertible values when TypeCode returned was Object
What is new in version 5.0 Release 6:
- New feature:
- Added serialized/deserialized JSON to verbose tracing.
- Added support for using type name handling with ISerializable content.
- Fixed:
- Not using default serializer settings with primitive values and JToken.ToObject.
- Error writing BigIntegers with JsonWriter.WriteToken.
- Serializing and deserializing flag enums with EnumMember attribute.
- Error deserializing interfaces with a valid type converter.
- Error deserializing ISerializable objects that also implement IConvertible.
What is new in version 5.0 Release 5:
- New feature:
- Added global default serialization settings with JsonConvert.DefaultSettings
- Added extension data support with JsonExtensionDataAttribute
- Added NullValueHandling and DefaultValueHandling support to serializing dynamic types
- Changes:
- Some explicit interface methods on JArray to public to support use with ImpromtuInterface
- Fixed:
- Deserializing non-ISO formatted date dictionary keys
- Values not being set when deserializing with DefaultValueHandling.IgnoreAndPopulate
- Deserializing with type named handling and assemblies loaded with Assembly.LoadFrom
- Deserializing Regexes when using StringEnumConverter
- Serializing and deserializing typed DataSets
What is new in version 5.0 Release 4:
- New feature - Added JsonWriter.SetWriteState to support inheritance from JsonWriter implementations
- Change - Changed .NET 4.5 portable library and WinRT library to use compiled expressions reflection
What is new in version 5.0 Release 3:
- Fixed error serializing non-generic types that implement IEnumerable<T>.
Comments not found