.net Core System.text.json Camelcase

4 min read Jun 03, 2024
.net Core System.text.json Camelcase

Serialiser et désérialiser des objets JSON en camelCase avec System.Text.Json dans .NET Core

Le framework .NET Core offre des fonctionnalités intégrées pour la sérialisation et la désérialisation d'objets JSON avec System.Text.Json. Par défaut, la bibliothèque utilise une convention de nommage PascalCase, ce qui peut poser problème si vous devez interagir avec des API qui utilisent une convention camelCase.

Heureusement, System.Text.Json vous permet de modifier la convention de nommage pour la sérialisation et la désérialisation.

Configuration pour la sérialisation en camelCase

Pour sérialiser des objets JSON en camelCase, vous pouvez utiliser l'option PropertyNamingPolicy dans la classe JsonSerializerOptions.

using System.Text.Json;

// Créer un objet de test
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

// Sérialiser en JSON avec camelCase
var person = new Person { FirstName = "John", LastName = "Doe" };
var options = new JsonSerializerOptions
{
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};

var jsonString = JsonSerializer.Serialize(person, options);
Console.WriteLine(jsonString); // {"firstName":"John","lastName":"Doe"}

Dans cet exemple, la propriété PropertyNamingPolicy est définie sur JsonNamingPolicy.CamelCase, qui garantit que les noms de propriétés seront convertis en camelCase lors de la sérialisation.

Configuration pour la désérialisation en camelCase

De même, vous pouvez utiliser PropertyNamingPolicy pour désérialiser des objets JSON en camelCase.

using System.Text.Json;

// Créer un objet de test
public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

// Désérialiser en objet C# avec camelCase
var jsonString = "{\"firstName\":\"John\",\"lastName\":\"Doe\"}";
var options = new JsonSerializerOptions
{
    PropertyNamingPolicy = JsonNamingPolicy.CamelCase
};

var person = JsonSerializer.Deserialize(jsonString, options);
Console.WriteLine(person.FirstName); // John

Dans ce cas, JsonNamingPolicy.CamelCase indique à la bibliothèque de mapper les noms de propriétés JSON en camelCase vers les noms de propriétés C# correspondants en PascalCase.

Personnaliser la convention de nommage

Si vous souhaitez utiliser une convention de nommage différente, vous pouvez créer une classe personnalisée qui implémente l'interface IPropertyNamingPolicy. Cette classe vous permet de définir les règles de nommage personnalisées pour la sérialisation et la désérialisation.

**En résumé, System.Text.Json dans .NET Core vous offre une grande flexibilité pour travailler avec les conventions de nommage JSON. En utilisant les options PropertyNamingPolicy, vous pouvez facilement sérialiser et désérialiser des objets JSON en camelCase ou en utilisant une convention de nommage personnalisée. **