var vJD: TJsonData; begin vJD := GetJSON(AString); try if assigned(vJD) then { Ok le JSON est valide } begin ... end; finally vJD.free; end; end;
JSon.GET('Nom element', VALEUR PAR DEFAUT);
ou
JSon.GET('Nom element');
… mais voir remarque ci-dessous !
var vJO: TJSonObject; begin FBigEndian:=vJO.Get('bendian',false); end;
Fonctionne sur :
Function Get(Const AName : String) : Variant; Function Get(Const AName : String; ADefault : TJSONFloat) : TJSONFloat; Function Get(Const AName : String; ADefault : Integer) : Integer; Function Get(Const AName : String; ADefault : Int64) : Int64; Function Get(Const AName : String; ADefault : QWord) : QWord; Function Get(Const AName : String; ADefault : Boolean) : Boolean; Function Get(Const AName : String; ADefault : TJSONStringType) : TJSONStringType; Function Get(Const AName : String; ADefault : TJSONUnicodeStringType) : TJSONUnicodeStringType; Function Get(Const AName : String; ADefault : TJSONArray) : TJSONArray; Function Get(Const AName : String; ADefault : TJSONObject) : TJSONObject;
Pour récuperer le JSONArray version
dans le JSON suivant :
{ "json_format_version": [ 1, 0 ], "smartctl": { "version": [ 7, 2 ], "svn_revision": "5155", "build_info": "(sf-7.2-1)", "exit_status": 0 } }
On peut utiliser le code ci-dessous (TJsonData.FindPath
):
vJSA:=TJSONArray(OutJSON.FindPath('smartctl.version'));
Pour avoir seulement le 7
:
var vJD: TJSonData; ... vJD:= OutJSON.FindPath('smartctl.version[0]'); if assigned(vJD) then Result:=vJD.AsString;
Dans l'exemple ci dessous on veut récupéré un eventuel JSonArray dans le JSonObject vJO
.
var vJO: TJSONObject; vJA: TJSonArray; vI: integer; vS: string; begin ... if vJO.Find('dependencies',vJA) then for vI := 0 to vJA.Count - 1 do vS:= vS+vJA.Strings[vI]; ... end;
TJsonObject.Find
fonctionne avec tous ces types :
Function Find(Const AName : String) : TJSONData; overload; Function Find(Const AName : String; AType : TJSONType) : TJSONData; overload; function Find(const key: TJSONStringType; out AValue: TJSONData): boolean; function Find(const key: TJSONStringType; out AValue: TJSONObject): boolean; function Find(const key: TJSONStringType; out AValue: TJSONArray): boolean; function Find(const key: TJSONStringType; out AValue: TJSONString): boolean; function Find(const key: TJSONStringType; out AValue: TJSONBoolean): boolean; function Find(const key: TJSONStringType; out AValue: TJSONNumber): boolean;