System.Text.Json, a JSON serialization library in Microsoft’s .NET development platform, could add C# source code generation in an upcoming iteration. The change is designed to improve performance.

Plans call for utilization of new C# source generator capabilities to help the built-in serializer in the following ways:

  • Improve startup and runtime throughput
  • Reduce private bytes usage
  • Reduce application size
  • Improve IL (Intermediate Language) Linker friendliness by avoiding runtime reflection

Efforts to utilize C# source generation in System.Text.Json were in a prototype stage as of mid-December. Microsoft envisions their coming to fruition in .NET 6.0, due in November of this year.

The System.Text.Json library converts .NET object types to a JSON string and vice versa. It supports UTF-8 text encoding and was introduced in .NET Core 3.0. A type in the library, JsonSeralizer, purports to have the highest level of functionality for processing JSON data.

In the new .NET 5, released in November, System.Text.Json gained improvements in performance and reliability, making the library easier to adopt for developers familiar with the Newtonsoft.Json framework.

Other plans in the offing for System.Text.Json include:

  • Extended polymorphic serialization and deserialization
  • Asynchronous serializing and deserializing IAsyncEnumerable<T>
  • The addition of snake_case naming policy
  • Changing default settings for JsonSerializerOptions.

Source