csharp-utf8-json

Utf8Json, conversor JSON para C# de alto rendimiento

Utf8Json es un serializador y deserializador JSON de alto rendimiento para .NET, creado por el desarrollador Yoshifumi Kawai, y lanzado en 2016.

El proceso de serialización y deserialización de ficheros JSON es una necesidad frecuente en cualquier programa moderno. Sin embargo, puede ser costoso en términos de rendimiento, especialmente cuando se trata de grandes cantidades de datos.

Es por eso que se crearon soluciones de serialización de JSON de alta velocidad como Utf8Json. Es uno de los serializadores JSON más rápido disponible en .NET.

Para ello utiliza el método “System.Buffers” de .NET para evitar la sobrecarga de GC (recolección de basura) que puede afectar el rendimiento de otros serializadores JSON. Otra razón por la cual Utf8Json es rápido es porque utiliza el acceso directo de memoria para la serialización y deserialización de JSON.

En las pruebas de rendimiento, Utf8Json es significativamente más rápido que Newtonsoft.Json y System.Text.Json en la serialización y deserialización de grandes cantidades de datos.

En términos de facilidad de uso, Utf8Json es fácil de configurar y usar en .NET. No requiere configuraciones complicadas o personalizaciones, lo que lo hace una excelente opción para proyectos que buscan un serializador JSON rápido y fácil de usar.

Cómo usar Utf8Json

Podemos añadir la biblioteca a un proyecto de .NET fácilmente, a través del paquete Nuget correspondiente.

Install-Package Utf8Json

Aquí tenéis algunos de cómo utilizar Utf8Json extraídos de la documentación de la librería

var p = new Person { Age = 99, Name = "foobar" };

// Object -> byte[] (UTF8)
byte[] result = JsonSerializer.Serialize(p);

// byte[] -> Object
var p2 = JsonSerializer.Deserialize<Person>(result);

// Object -> String
var json = JsonSerializer.ToJsonString(p2);

// Write to Stream
JsonSerializer.Serialize(stream, p2);

Utf8Json es Open Source, y todo el código y documentación está disponible en el repositorio del proyecto en https://github.com/neuecc/Utf8Json