Json.NET 4.5 Release 5 – JsonProperty enhancements
JsonProperty enhancements
JsonPropertyAttribute now has options on it to customize a property’s collection items. When ItemConverter, ItemIsReference, ItemTypeNameHandling or ItemReferenceLoopHandling is set on JsonProperty and the property’s type is a collection then those settings will be applied to every collection item.
public class Event
{
public string EventName { get; set; }
public string Venue { get; set; }
[JsonProperty(ItemConverterType = typeof(JavaScriptDateTimeConverter))]
public IList<DateTime> Performances { get; set; }
}
Usage:
Event e = new Event
{
EventName = "Blackadder III",
Venue = "Gryphon Theatre",
Performances = new List<DateTime>
{
DateTime.Parse("8 Tue May 2012, 6:30pm"),
DateTime.Parse("9 Wed May 2012, 6:30pm"),
DateTime.Parse("10 Thu May 2012, 8:00pm")
}
};
string json = JsonConvert.SerializeObject(e, Formatting.Indented);
//{
// "EventName": "Blackadder III",
// "Venue": "Gryphon Theatre",
// "Performances": [
// new Date(1336458600000),
// new Date(1336545000000),
// new Date(1336636800000)
// ]
//}
Changes
Here is a complete list of what has changed since Json.NET 4.5 Release 4.
- New feature - Added ItemIsReference, ItemReferenceLoopHandling, ItemTypeNameHandling, ItemConverterType to JsonPropertyAttribute
- New feature - Added ItemRequired to JsonObjectAttribute
- New feature - Added Path to JsonWriterException
- Change - Improved deserializer call stack memory usage
- Change - Moved the PDB files out of the NuGet package into a symbols package
- Fix - Fixed infinite loop from an input error when reading an array and error handling is enabled
- Fix - Fixed a base object error not being handled when deserializing
Links
Json.NET 4.5 Release 5 Download – Json.NET source code, documentation and binaries