mirror of https://gitlab.com/basile.b/dexed.git
add helper for TJSONObject
This commit is contained in:
parent
9b9c46305f
commit
e36e61b683
|
@ -15,7 +15,8 @@ uses
|
||||||
{$IFNDEF CEBUILD}
|
{$IFNDEF CEBUILD}
|
||||||
forms,
|
forms,
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
LazFileUtils, process, asyncprocess, ghashmap, ghashset, LCLIntf, strutils;
|
LazFileUtils, process, asyncprocess, ghashmap, ghashset, LCLIntf, strutils,
|
||||||
|
xfpjson;
|
||||||
|
|
||||||
const
|
const
|
||||||
exeExt = {$IFDEF WINDOWS} '.exe' {$ELSE} '' {$ENDIF};
|
exeExt = {$IFDEF WINDOWS} '.exe' {$ELSE} '' {$ENDIF};
|
||||||
|
@ -89,6 +90,12 @@ type
|
||||||
function strictText: string;
|
function strictText: string;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TJSONObjectHelper = class helper for TJSONObject
|
||||||
|
function findObject(const key: TJSONStringType; out value: TJSONObject): boolean;
|
||||||
|
function findArray(const key: TJSONStringType; out value: TJSONArray): boolean;
|
||||||
|
function findAny(const key: TJSONStringType; out value: TJSONData): boolean;
|
||||||
|
end;
|
||||||
|
|
||||||
(**
|
(**
|
||||||
* TProcess with assign() 'overriden'.
|
* TProcess with assign() 'overriden'.
|
||||||
*)
|
*)
|
||||||
|
@ -467,6 +474,43 @@ begin
|
||||||
setLength(result, result.length - self.LineBreak.length);
|
setLength(result, result.length - self.LineBreak.length);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
function TJSONObjectHelper.findObject(const key: TJSONStringType; out value: TJSONObject): boolean;
|
||||||
|
var
|
||||||
|
v: TJSONData;
|
||||||
|
begin
|
||||||
|
v := self.Find(key);
|
||||||
|
if v.isNotNil then
|
||||||
|
begin
|
||||||
|
result := v.JSONType = jtObject;
|
||||||
|
if result then
|
||||||
|
value := TJSONObject(v);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
result := false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJSONObjectHelper.findArray(const key: TJSONStringType; out value: TJSONArray): boolean;
|
||||||
|
var
|
||||||
|
v: TJSONData;
|
||||||
|
begin
|
||||||
|
v := self.Find(key);
|
||||||
|
if v.isNotNil then
|
||||||
|
begin
|
||||||
|
result := v.JSONType = jtArray;
|
||||||
|
if result then
|
||||||
|
value := TJSONArray(v);
|
||||||
|
end
|
||||||
|
else
|
||||||
|
result := false;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TJSONObjectHelper.findAny(const key: TJSONStringType; out value: TJSONData): boolean;
|
||||||
|
begin
|
||||||
|
value := self.Find(key);
|
||||||
|
result := value.isNotNil;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TProcessEx.Assign(value: TPersistent);
|
procedure TProcessEx.Assign(value: TPersistent);
|
||||||
var
|
var
|
||||||
src: TProcess;
|
src: TProcess;
|
||||||
|
|
Loading…
Reference in New Issue