Lorsque vous travaillez avec des objets JSON imbriqués, vous souhaiterez peut-être les désérialiser dans un dictionnaire
Pour obtenir les types C# appropriés, vous devez créer un JsonConverter personnalisé. Le convertisseur suivant gérera tous les types de valeurs JSON et les convertira en leurs types C# correspondants :
public class ObjectAsPrimitiveConverter : JsonConverter<object> { ... public override object Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { switch (reader.TokenType) { // Handle null, boolean, string, and number types. case JsonTokenType.StartArray: // Handle arrays. case JsonTokenType.StartObject: // Handle objects. default: throw new JsonException("Unknown token"); } } }
Pour utiliser le convertisseur personnalisé, spécifiez-le dans vos options de désérialisation :
var options = new JsonSerializerOptions { Converters = { new ObjectAsPrimitiveConverter() }, }; dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
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!