API:Data.DBXJSONReflect.TJSONConverter
Delphi
TJSONConverter = class(TConverter<TJSONValue>)
C++
class PASCALIMPLEMENTATION TJSONConverter : public TConverter__1<System::Json::TJSONValue*>
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
class | public | Data.DBXJSONReflect.pas Data.DBXJSONReflect.hpp |
Data.DBXJSONReflect | Data.DBXJSONReflect |
Description
Représente la classe convertisseur de base.
Data.DBXJSONReflect.TJSONConverter hérite de Data.DBXJSONReflect.TConverter. Tout le contenu en-dessous de cette ligne se réfère à Data.DBXJSONReflect.TConverter.
Représente la classe convertisseur de base.
Tout sérialiseur doit hériter de la classe TConverter. TConverter fournit les événements API utilisés par une classe marshaller pour sérialiser un objet utilisateur.
Les convertisseurs et les restaurateurs peuvent être enregistrés sur un type et un champ, ou pour un type. Tout champ déclaré de ce type est traité par le convertisseur/restaurateur utilisateur fourni. Un convertisseur/restaurateur enregistré de champ a priorité sur un convertisseur/restaurateur de type.
Un convertisseur de champ peut transformer une valeur de champ en une chaîne, un objet, une liste de chaînes ou une liste d'objets. Le contrat est que ces valeurs transformées seront passées en arguments au restaurateur correspondant afin de reconstituer la valeur du champ.
Un convertisseur de type peut transformer une valeur en une chaîne, un objet, une liste de chaînes ou une liste d'objets. Ces valeurs transformées seront passées en arguments au restaurateur de type qui reconstituera l'instance de type originale.
Par exemple, un champ TStringList peut être converti en un tableau de chaînes par un convertisseur, et un restaurateur peut utiliser la liste de chaînes pour créer et remplir une instance de TStringList. C'est le degré de complexité attendu par un convertisseur/restaurateur défini par l'utilisateur.
Sur des situations prédéterminées, des événements sont émis. Le tableau suivant contient la liste des situations qui peuvent se produire durant le marshalling.
Situation | Evénement |
---|---|
Un nouvel objet est rencontré. |
|
Un objet déjà visité est rencontré. |
|
Un nouveau contenu d'objet a été revisité. |
|
Un nouveau champ est rencontré. |
|
Un nouveau champ est visité. |
|
Une valeur chaîne est rencontrée. |
|
Une valeur numérique est rencontrée. |
|
Une valeur nil est rencontrée. |
|
Une valeur booléenne est rencontrée. |
|
Une valeur liste est rencontrée. |
|
Le traitement d'une liste est terminé. |
Les événements sont reçus par une instance de TConverter. Ils sont imbriqués, selon la structure de l'objet utilisateur. En se basant sur les événements et leurs arguments, l'instance de TConverter construit une image équivalente de l'objet utilisateur.
L'image objet construite par le convertisseur peut être utilisée pour reconstituer l'objet utilisateur original, en utilisant les événements du restaurateur pilotés par un unmarshaller.
Remarque : Voici les champs pour lesquels il y a déjà une conversion/inversion intégrée : entier, chaîne, caractère, énumération, flottant, objet. Pour les types suivants, les valeurs de champs sont ignorées et la conversion utilisateur est attendue : ensemble, méthode, variant, interface, pointeur, tableau dynamique, référence de classe, tableau.