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}
|
||||
forms,
|
||||
{$ENDIF}
|
||||
LazFileUtils, process, asyncprocess, ghashmap, ghashset, LCLIntf, strutils;
|
||||
LazFileUtils, process, asyncprocess, ghashmap, ghashset, LCLIntf, strutils,
|
||||
xfpjson;
|
||||
|
||||
const
|
||||
exeExt = {$IFDEF WINDOWS} '.exe' {$ELSE} '' {$ENDIF};
|
||||
|
@ -89,6 +90,12 @@ type
|
|||
function strictText: string;
|
||||
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'.
|
||||
*)
|
||||
|
@ -467,6 +474,43 @@ begin
|
|||
setLength(result, result.length - self.LineBreak.length);
|
||||
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);
|
||||
var
|
||||
src: TProcess;
|
||||
|
|
Loading…
Reference in New Issue