Maison >développement back-end >C++ >Comment désérialiser un JSON imbriqué en un dictionnaire d'objets imbriqués avec les types C# appropriés à l'aide de System.Text.Json ?
Désérialisation du JSON imbriqué en dictionnaire d'objets imbriqué avec les types C# appropriés
En C# .Net Core 3.1 à l'aide de System.Text.Json, désérialisation Objets JSON imbriqués dans Dictionary
JsonConverter personnalisé : ObjectAsPrimitiveConverter
Comme System.Text.Json manque de fonctionnalités intégrées. pour prendre en charge la désérialisation du JSON de forme libre en types primitifs, nous avons besoin d'un JsonConverter personnalisé, ObjectAsPrimitiveConverter, qui fournit les fonctionnalités suivantes :
Implémentation du code :
public class ObjectAsPrimitiveConverter : JsonConverter<object> { // Configure converter settings (float format, unknown number handling, object format) ... public override void Write(Utf8JsonWriter writer, object value, JsonSerializerOptions options) { // Handle custom serialization if needed } public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { // Handle custom deserialization based on token type } }
Configuration et utilisation :
Pour utilisez le convertisseur personnalisé, configurez vos JsonSerializerOptions avec le ObjectAsPrimitiveConverter et spécifiez les paramètres souhaités :
var options = new JsonSerializerOptions { Converters = { new ObjectAsPrimitiveConverter() }, WriteIndented = true, }; // Deserialize to object or dynamic dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
Remarques :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!