Skip to content

JsonSerializer improvements in .NET 5 #41313

Closed
@layomia

Description

@layomia

In 5.0, we have added new features to JsonSerializer, improved performance and reliability, and made the serializer work on more platforms. This list goes over the most user-facing improvements.

Issue Description Category
#30820 Add mechanism to preserve object references when (de)serializing Feature
#32937 Add extension methods for HttpClient that allow (de)serializing JSON Feature
#30255 Support (de)serializing quoted numbers Feature
#29895 Support deserializing objects using parameterized constructors Feature
#876 Support (de)serializing fields Feature
#779 Support ignoring value-type defaults Feature
#30687 Support conditionally ignoring properties (always, never, when null/default) Feature
#30524 Support non-string dictionary keys Feature
#29743 Allow using non-public property accessors for (de)serialization Feature
#34439 Provide opt-in for custom converters to handle null Feature
#38539 Support new C# record types Feature
#30445 Add a copy constructor to JsonSerializerOptions Feature
#34626 Add constructor to JsonSerializerOptions that takes serialization defaults Feature
#2259 Improve (de)serialization performance for collections Performance
#36635 Improve serialization performance for small or value-type POCOS (TechEmpower) Performance
#35848 Improve deserialization perf for case-insensitive and missing-property cases Performance
dotnet/corefx#41845 Improve perf for serializing long JSON strings Performance
#31326 Enable JsonSerializer to work on Xamarin iOS/Android Platform support

Check out demos for the new features: https://github.com/layomia/NET5JsonDemos.

Metadata

Metadata

Assignees

No one assigned

    Labels

    EpicGroups multiple user stories. Can be grouped under a theme.area-System.Text.Json

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions