Java, Php et d'autres langages disposent de cadres matures pour analyser les données Json, ce qui nous permet d'utiliser très peu de code pour convertir les données JSON formatées en objets ou attributs pouvant être reconnus par le programme. composants dans Delphi. Implémentez cette fonctionnalité, c'est-à-dire IsuperObject. Si vous ne disposez pas encore de ce composant, veuillez le rechercher et le télécharger en ligne ou laisser votre e-mail dans la boîte de message ci-dessous pour me le demander.
Parlons d’abord de certaines fonctions couramment utilisées dans ISuperObject.
function SO(const s: SOString = '{}') : ISuperObject; surcharge ; Cette fonction transmet la chaîne de données json et renvoie un objet ISuperObject. C'est généralement la première fonction que nous utilisons lors de l'analyse de json, comme jObj : =SO. (jsonstr).
property O[const path: SOString]: ISuperObject read GetO write PutO; default Par exemple : jobj.O['username'], cette fonction est appelée par un objet ISuperObject, la chaîne entre crochets est le nom du champ en json, a renvoyé un objet ISuperObject.
property S[const path: SOString]: SOString read GetS write PutS; Cette fonction est appelée par un objet ISuperObject Différent de O['username'], elle renvoie un SoString, c'est-à-dire une chaîne. jObj.S['nom d'utilisateur']; De même, il existe plusieurs autres fonctions similaires, telles que I['age'] renvoie un entier, B['isenable'] renvoie un type booléen et A['users'] renvoie un tableau TSuperArray.
Les fonctions AsString, AsBoolean, AsInteger, AsArray, ISuperObject sont utilisées pour convertir ISuperObject dans le type de données correspondant.
Regardons un code de démonstration ci-dessous, les données json sont les suivantes
{ "retcode": "1", "datafrom": "server", "users": "[{/"id/":1, /"username/": /"liuderu/", /"website/": /"bcoder.com/"},{/"id/":2, /"username/": /"Jeoe/", /"website/": /"baidu.com/"}]"}Delphi version 2010, le code est le suivant :
unité uFmMain ; interface utilise Windows, Messages, SysUtils, Variants, Classes, Graphiques, Contrôles, Formulaires, Boîtes de dialogue, StdCtrls, ComCtrls, Boutons, superobjet ; tapez TFmMain = class (TForm) Memo1 : TMemo ListView ; TListView ; : TÉtiquette ; procédure BitBtn1Click (Expéditeur : TObject); private { Déclarations privées } public { Déclarations publiques } fin; : TSuperArray; retCode : entier ; strUsers : string ; i : entier;begin jRet := SO(Memo1.Text); if (jRet.O['retcode'] <> nil) alors start retCode := jRet.O['retcode'].AsInteger; .Caption := 'Valeur de retour :' + IntToStr(retCode) + '; Source de données :' + jRet.O['datafrom'].AsString; if(jRet.O['retcode'].AsInteger = 1) puis commencez strUsers := jRet.O['users'].AsString; aryUsers := jUsers.AsArray; pour I := 0 à aryUsers.Length - 1 commence par ListView1.Items.Add commence Caption := aryUsers[i].O['id'].AsString; ].O['site Web'].AsString); fin; fin; fin;Un exemple simple de Delphi utilisant ISuperObject pour analyser json : Delphi_Json_jb51.rar