|
@@ -39,10 +39,12 @@ type
|
|
function GetAsBoolean: Boolean; virtual; abstract;
|
|
function GetAsBoolean: Boolean; virtual; abstract;
|
|
function GetAsFloat: TJSONFloat; virtual; abstract;
|
|
function GetAsFloat: TJSONFloat; virtual; abstract;
|
|
function GetAsInteger: Integer; virtual; abstract;
|
|
function GetAsInteger: Integer; virtual; abstract;
|
|
|
|
+ function GetAsInt64: Int64; virtual; abstract;
|
|
function GetIsNull: Boolean; virtual;
|
|
function GetIsNull: Boolean; virtual;
|
|
procedure SetAsBoolean(const AValue: Boolean); virtual; abstract;
|
|
procedure SetAsBoolean(const AValue: Boolean); virtual; abstract;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); virtual; abstract;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); virtual; abstract;
|
|
procedure SetAsInteger(const AValue: Integer); virtual; abstract;
|
|
procedure SetAsInteger(const AValue: Integer); virtual; abstract;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); virtual; abstract;
|
|
function GetAsJSON: TJSONStringType; virtual; abstract;
|
|
function GetAsJSON: TJSONStringType; virtual; abstract;
|
|
function GetAsString: TJSONStringType; virtual; abstract;
|
|
function GetAsString: TJSONStringType; virtual; abstract;
|
|
procedure SetAsString(const AValue: TJSONStringType); virtual; abstract;
|
|
procedure SetAsString(const AValue: TJSONStringType); virtual; abstract;
|
|
@@ -61,13 +63,14 @@ type
|
|
Property AsString : TJSONStringType Read GetAsString Write SetAsString;
|
|
Property AsString : TJSONStringType Read GetAsString Write SetAsString;
|
|
Property AsFloat : TJSONFloat Read GetAsFloat Write SetAsFloat;
|
|
Property AsFloat : TJSONFloat Read GetAsFloat Write SetAsFloat;
|
|
Property AsInteger : Integer Read GetAsInteger Write SetAsInteger;
|
|
Property AsInteger : Integer Read GetAsInteger Write SetAsInteger;
|
|
|
|
+ Property AsInt64 : Int64 Read GetAsInt64 Write SetAsInt64;
|
|
Property AsBoolean : Boolean Read GetAsBoolean Write SetAsBoolean;
|
|
Property AsBoolean : Boolean Read GetAsBoolean Write SetAsBoolean;
|
|
Property IsNull : Boolean Read GetIsNull;
|
|
Property IsNull : Boolean Read GetIsNull;
|
|
Property AsJSON : TJSONStringType Read GetAsJSON;
|
|
Property AsJSON : TJSONStringType Read GetAsJSON;
|
|
end;
|
|
end;
|
|
|
|
|
|
TJSONDataClass = Class of TJSONData;
|
|
TJSONDataClass = Class of TJSONData;
|
|
- TJSONNumberType = (ntFloat,ntInteger);
|
|
|
|
|
|
+ TJSONNumberType = (ntFloat,ntInteger,ntInt64);
|
|
|
|
|
|
TJSONNumber = class(TJSONData)
|
|
TJSONNumber = class(TJSONData)
|
|
protected
|
|
protected
|
|
@@ -85,9 +88,11 @@ type
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsInteger: Integer; override;
|
|
function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
@@ -108,9 +113,11 @@ type
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsInteger: Integer; override;
|
|
function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
@@ -122,6 +129,31 @@ type
|
|
Procedure Clear; override;
|
|
Procedure Clear; override;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+ { TJSONInt64Number }
|
|
|
|
+
|
|
|
|
+ TJSONInt64Number = class(TJSONNumber)
|
|
|
|
+ Private
|
|
|
|
+ FValue : Int64;
|
|
|
|
+ protected
|
|
|
|
+ function GetAsBoolean: Boolean; override;
|
|
|
|
+ function GetAsFloat: TJSONFloat; override;
|
|
|
|
+ function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
|
|
+ procedure SetAsBoolean(const AValue: Boolean); override;
|
|
|
|
+ procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
|
|
+ procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
|
|
+ function GetAsJSON: TJSONStringType; override;
|
|
|
|
+ function GetAsString: TJSONStringType; override;
|
|
|
|
+ procedure SetAsString(const AValue: TJSONStringType); override;
|
|
|
|
+ function GetValue: variant; override;
|
|
|
|
+ procedure SetValue(const AValue: variant); override;
|
|
|
|
+ public
|
|
|
|
+ Constructor Create(AValue : Int64); reintroduce;
|
|
|
|
+ class function NumberType : TJSONNumberType; override;
|
|
|
|
+ Procedure Clear; override;
|
|
|
|
+ end;
|
|
|
|
+
|
|
{ TJSONString }
|
|
{ TJSONString }
|
|
|
|
|
|
TJSONString = class(TJSONData)
|
|
TJSONString = class(TJSONData)
|
|
@@ -133,9 +165,11 @@ type
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsInteger: Integer; override;
|
|
function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
@@ -156,9 +190,11 @@ type
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsInteger: Integer; override;
|
|
function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
@@ -176,10 +212,12 @@ type
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsInteger: Integer; override;
|
|
function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
function GetIsNull: Boolean; override;
|
|
function GetIsNull: Boolean; override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
@@ -202,6 +240,7 @@ type
|
|
function GetBooleans(Index : Integer): Boolean;
|
|
function GetBooleans(Index : Integer): Boolean;
|
|
function GetFloats(Index : Integer): TJSONFloat;
|
|
function GetFloats(Index : Integer): TJSONFloat;
|
|
function GetIntegers(Index : Integer): Integer;
|
|
function GetIntegers(Index : Integer): Integer;
|
|
|
|
+ function GetInt64s(Index : Integer): Int64;
|
|
function GetNulls(Index : Integer): Boolean;
|
|
function GetNulls(Index : Integer): Boolean;
|
|
function GetObjects(Index : Integer): TJSONObject;
|
|
function GetObjects(Index : Integer): TJSONObject;
|
|
function GetStrings(Index : Integer): TJSONStringType;
|
|
function GetStrings(Index : Integer): TJSONStringType;
|
|
@@ -210,6 +249,7 @@ type
|
|
procedure SetBooleans(Index : Integer; const AValue: Boolean);
|
|
procedure SetBooleans(Index : Integer; const AValue: Boolean);
|
|
procedure SetFloats(Index : Integer; const AValue: TJSONFloat);
|
|
procedure SetFloats(Index : Integer; const AValue: TJSONFloat);
|
|
procedure SetIntegers(Index : Integer; const AValue: Integer);
|
|
procedure SetIntegers(Index : Integer; const AValue: Integer);
|
|
|
|
+ procedure SetInt64s(Index : Integer; const AValue: Int64);
|
|
procedure SetObjects(Index : Integer; const AValue: TJSONObject);
|
|
procedure SetObjects(Index : Integer; const AValue: TJSONObject);
|
|
procedure SetStrings(Index : Integer; const AValue: TJSONStringType);
|
|
procedure SetStrings(Index : Integer; const AValue: TJSONStringType);
|
|
protected
|
|
protected
|
|
@@ -217,9 +257,11 @@ type
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsInteger: Integer; override;
|
|
function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
@@ -240,6 +282,7 @@ type
|
|
Procedure Clear; override;
|
|
Procedure Clear; override;
|
|
function Add(Item : TJSONData): Integer;
|
|
function Add(Item : TJSONData): Integer;
|
|
function Add(I : Integer): Integer;
|
|
function Add(I : Integer): Integer;
|
|
|
|
+ function Add(I : Int64): Int64;
|
|
function Add(S : String): Integer;
|
|
function Add(S : String): Integer;
|
|
function Add: Integer;
|
|
function Add: Integer;
|
|
function Add(F : TJSONFloat): Integer;
|
|
function Add(F : TJSONFloat): Integer;
|
|
@@ -253,6 +296,7 @@ type
|
|
Property Types[Index : Integer] : TJSONType Read GetTypes;
|
|
Property Types[Index : Integer] : TJSONType Read GetTypes;
|
|
Property Nulls[Index : Integer] : Boolean Read GetNulls;
|
|
Property Nulls[Index : Integer] : Boolean Read GetNulls;
|
|
Property Integers[Index : Integer] : Integer Read GetIntegers Write SetIntegers;
|
|
Property Integers[Index : Integer] : Integer Read GetIntegers Write SetIntegers;
|
|
|
|
+ Property Int64s[Index : Integer] : Int64 Read GetInt64s Write SetInt64s;
|
|
Property Strings[Index : Integer] : TJSONStringType Read GetStrings Write SetStrings;
|
|
Property Strings[Index : Integer] : TJSONStringType Read GetStrings Write SetStrings;
|
|
Property Floats[Index : Integer] : TJSONFloat Read GetFloats Write SetFloats;
|
|
Property Floats[Index : Integer] : TJSONFloat Read GetFloats Write SetFloats;
|
|
Property Booleans[Index : Integer] : Boolean Read GetBooleans Write SetBooleans;
|
|
Property Booleans[Index : Integer] : Boolean Read GetBooleans Write SetBooleans;
|
|
@@ -272,6 +316,7 @@ type
|
|
function GetElements(AName: string): TJSONData;
|
|
function GetElements(AName: string): TJSONData;
|
|
function GetFloats(AName : String): TJSONFloat;
|
|
function GetFloats(AName : String): TJSONFloat;
|
|
function GetIntegers(AName : String): Integer;
|
|
function GetIntegers(AName : String): Integer;
|
|
|
|
+ function GetInt64s(AName : String): Int64;
|
|
function GetIsNull(AName : String): Boolean; reintroduce;
|
|
function GetIsNull(AName : String): Boolean; reintroduce;
|
|
function GetNameOf(Index : Integer): TJSONStringType;
|
|
function GetNameOf(Index : Integer): TJSONStringType;
|
|
function GetObjects(AName : String): TJSONObject;
|
|
function GetObjects(AName : String): TJSONObject;
|
|
@@ -282,6 +327,7 @@ type
|
|
procedure SetElements(AName: string; const AValue: TJSONData);
|
|
procedure SetElements(AName: string; const AValue: TJSONData);
|
|
procedure SetFloats(AName : String; const AValue: TJSONFloat);
|
|
procedure SetFloats(AName : String; const AValue: TJSONFloat);
|
|
procedure SetIntegers(AName : String; const AValue: Integer);
|
|
procedure SetIntegers(AName : String; const AValue: Integer);
|
|
|
|
+ procedure SetInt64s(AName : String; const AValue: Int64);
|
|
procedure SetIsNull(AName : String; const AValue: Boolean);
|
|
procedure SetIsNull(AName : String; const AValue: Boolean);
|
|
procedure SetObjects(AName : String; const AValue: TJSONObject);
|
|
procedure SetObjects(AName : String; const AValue: TJSONObject);
|
|
procedure SetStrings(AName : String; const AValue: TJSONStringType);
|
|
procedure SetStrings(AName : String; const AValue: TJSONStringType);
|
|
@@ -290,9 +336,11 @@ type
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsBoolean: Boolean; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsFloat: TJSONFloat; override;
|
|
function GetAsInteger: Integer; override;
|
|
function GetAsInteger: Integer; override;
|
|
|
|
+ function GetAsInt64: Int64; override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsBoolean(const AValue: Boolean); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsFloat(const AValue: TJSONFloat); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
procedure SetAsInteger(const AValue: Integer); override;
|
|
|
|
+ procedure SetAsInt64(const AValue: Int64); override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsJSON: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
function GetAsString: TJSONStringType; override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
procedure SetAsString(const AValue: TJSONStringType); override;
|
|
@@ -317,6 +365,7 @@ type
|
|
function Add(const AName: TJSONStringType; AValue: TJSONFloat): Integer; overload;
|
|
function Add(const AName: TJSONStringType; AValue: TJSONFloat): Integer; overload;
|
|
function Add(const AName: TJSONStringType; AValue: TJSONStringType): Integer; overload;
|
|
function Add(const AName: TJSONStringType; AValue: TJSONStringType): Integer; overload;
|
|
function Add(const AName: TJSONStringType; Avalue: Integer): Integer; overload;
|
|
function Add(const AName: TJSONStringType; Avalue: Integer): Integer; overload;
|
|
|
|
+ function Add(const AName: TJSONStringType; Avalue: Int64): Integer; overload;
|
|
function Add(const AName: TJSONStringType): Integer; overload;
|
|
function Add(const AName: TJSONStringType): Integer; overload;
|
|
function Add(const AName: TJSONStringType; AValue : TJSONArray): Integer; overload;
|
|
function Add(const AName: TJSONStringType; AValue : TJSONArray): Integer; overload;
|
|
procedure Delete(Index : Integer);
|
|
procedure Delete(Index : Integer);
|
|
@@ -330,6 +379,7 @@ type
|
|
Property Nulls[AName : String] : Boolean Read GetIsNull Write SetIsNull;
|
|
Property Nulls[AName : String] : Boolean Read GetIsNull Write SetIsNull;
|
|
Property Floats[AName : String] : TJSONFloat Read GetFloats Write SetFloats;
|
|
Property Floats[AName : String] : TJSONFloat Read GetFloats Write SetFloats;
|
|
Property Integers[AName : String] : Integer Read GetIntegers Write SetIntegers;
|
|
Property Integers[AName : String] : Integer Read GetIntegers Write SetIntegers;
|
|
|
|
+ Property Int64s[AName : String] : Int64 Read GetInt64s Write SetInt64s;
|
|
Property Strings[AName : String] : TJSONStringType Read GetStrings Write SetStrings;
|
|
Property Strings[AName : String] : TJSONStringType Read GetStrings Write SetStrings;
|
|
Property Booleans[AName : String] : Boolean Read GetBooleans Write SetBooleans;
|
|
Property Booleans[AName : String] : Boolean Read GetBooleans Write SetBooleans;
|
|
Property Arrays[AName : String] : TJSONArray Read GetArrays Write SetArrays;
|
|
Property Arrays[AName : String] : TJSONArray Read GetArrays Write SetArrays;
|
|
@@ -534,6 +584,11 @@ begin
|
|
Result:=StrToInt(FValue);
|
|
Result:=StrToInt(FValue);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONstring.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ Result:=StrToInt64(FValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONstring.SetAsBoolean(const AValue: Boolean);
|
|
procedure TJSONstring.SetAsBoolean(const AValue: Boolean);
|
|
begin
|
|
begin
|
|
FValue:=BoolToStr(AValue);
|
|
FValue:=BoolToStr(AValue);
|
|
@@ -549,6 +604,11 @@ begin
|
|
FValue:=IntToStr(AValue);
|
|
FValue:=IntToStr(AValue);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONstring.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ FValue:=IntToStr(AValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONstring.GetAsJSON: TJSONStringType;
|
|
function TJSONstring.GetAsJSON: TJSONStringType;
|
|
begin
|
|
begin
|
|
Result:='"'+StringToJSONString(FValue)+'"';
|
|
Result:='"'+StringToJSONString(FValue)+'"';
|
|
@@ -608,6 +668,10 @@ begin
|
|
Result:=Ord(FValue);
|
|
Result:=Ord(FValue);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONboolean.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ Result:=Ord(FValue);
|
|
|
|
+end;
|
|
|
|
|
|
procedure TJSONboolean.SetAsBoolean(const AValue: Boolean);
|
|
procedure TJSONboolean.SetAsBoolean(const AValue: Boolean);
|
|
begin
|
|
begin
|
|
@@ -624,6 +688,11 @@ begin
|
|
FValue:=(AValue<>0)
|
|
FValue:=(AValue<>0)
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONboolean.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ FValue:=(AValue<>0)
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONboolean.GetAsJSON: TJSONStringType;
|
|
function TJSONboolean.GetAsJSON: TJSONStringType;
|
|
begin
|
|
begin
|
|
If FValue then
|
|
If FValue then
|
|
@@ -673,6 +742,11 @@ begin
|
|
ConvertError(True);
|
|
ConvertError(True);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONnull.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ ConvertError(True);
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONnull.GetIsNull: Boolean;
|
|
function TJSONnull.GetIsNull: Boolean;
|
|
begin
|
|
begin
|
|
Result:=True;
|
|
Result:=True;
|
|
@@ -693,6 +767,11 @@ begin
|
|
ConvertError(False);
|
|
ConvertError(False);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONnull.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ ConvertError(False);
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONnull.GetAsJSON: TJSONStringType;
|
|
function TJSONnull.GetAsJSON: TJSONStringType;
|
|
begin
|
|
begin
|
|
Result:='Null';
|
|
Result:='Null';
|
|
@@ -748,6 +827,11 @@ begin
|
|
Result:=Round(FValue);
|
|
Result:=Round(FValue);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONFloatNumber.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ Result:=Round(FValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONFloatNumber.SetAsBoolean(const AValue: Boolean);
|
|
procedure TJSONFloatNumber.SetAsBoolean(const AValue: Boolean);
|
|
begin
|
|
begin
|
|
FValue:=Ord(AValue);
|
|
FValue:=Ord(AValue);
|
|
@@ -763,6 +847,11 @@ begin
|
|
FValue:=AValue;
|
|
FValue:=AValue;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONFloatNumber.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ FValue:=AValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONFloatNumber.GetAsJSON: TJSONStringType;
|
|
function TJSONFloatNumber.GetAsJSON: TJSONStringType;
|
|
begin
|
|
begin
|
|
Result:=AsString;
|
|
Result:=AsString;
|
|
@@ -826,6 +915,11 @@ begin
|
|
Result:=FValue;
|
|
Result:=FValue;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONIntegerNumber.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ Result:=FValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONIntegerNumber.SetAsBoolean(const AValue: Boolean);
|
|
procedure TJSONIntegerNumber.SetAsBoolean(const AValue: Boolean);
|
|
begin
|
|
begin
|
|
FValue:=Ord(AValue);
|
|
FValue:=Ord(AValue);
|
|
@@ -841,6 +935,11 @@ begin
|
|
FValue:=AValue;
|
|
FValue:=AValue;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONIntegerNumber.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ FValue:=AValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONIntegerNumber.GetAsJSON: TJSONStringType;
|
|
function TJSONIntegerNumber.GetAsJSON: TJSONStringType;
|
|
begin
|
|
begin
|
|
Result:=AsString;
|
|
Result:=AsString;
|
|
@@ -881,6 +980,87 @@ begin
|
|
FValue:=0;
|
|
FValue:=0;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+{ TJSONInt64Number }
|
|
|
|
+
|
|
|
|
+function TJSONInt64Number.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ Result := FValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TJSONInt64Number.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ FValue := AValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSONInt64Number.GetAsBoolean: Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=FValue<>0;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSONInt64Number.GetAsFloat: TJSONFloat;
|
|
|
|
+begin
|
|
|
|
+ Result:= FValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSONInt64Number.GetAsInteger: Integer;
|
|
|
|
+begin
|
|
|
|
+ Result := FValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TJSONInt64Number.SetAsBoolean(const AValue: Boolean);
|
|
|
|
+begin
|
|
|
|
+ FValue:=Ord(AValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TJSONInt64Number.SetAsFloat(const AValue: TJSONFloat);
|
|
|
|
+begin
|
|
|
|
+ FValue:=Round(AValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TJSONInt64Number.SetAsInteger(const AValue: Integer);
|
|
|
|
+begin
|
|
|
|
+ FValue:=AValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSONInt64Number.GetAsJSON: TJSONStringType;
|
|
|
|
+begin
|
|
|
|
+ Result:=AsString;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSONInt64Number.GetAsString: TJSONStringType;
|
|
|
|
+begin
|
|
|
|
+ Result:=IntToStr(FValue)
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TJSONInt64Number.SetAsString(const AValue: TJSONStringType);
|
|
|
|
+begin
|
|
|
|
+ FValue:=StrToInt64(AValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TJSONInt64Number.GetValue: variant;
|
|
|
|
+begin
|
|
|
|
+ Result:=FValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TJSONInt64Number.SetValue(const AValue: variant);
|
|
|
|
+begin
|
|
|
|
+ FValue:=AValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+constructor TJSONInt64Number.Create(AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ FValue := AValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+class function TJSONInt64Number.NumberType: TJSONNumberType;
|
|
|
|
+begin
|
|
|
|
+ Result:=ntInt64;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+procedure TJSONInt64Number.Clear;
|
|
|
|
+begin
|
|
|
|
+ FValue:=0;
|
|
|
|
+end;
|
|
|
|
|
|
{ TJSONArray }
|
|
{ TJSONArray }
|
|
|
|
|
|
@@ -904,6 +1084,11 @@ begin
|
|
Result:=Items[Index].AsInteger;
|
|
Result:=Items[Index].AsInteger;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONArray.GetInt64s(Index : Integer): Int64;
|
|
|
|
+begin
|
|
|
|
+ Result:=Items[Index].AsInt64;
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONArray.GetNulls(Index : Integer): Boolean;
|
|
function TJSONArray.GetNulls(Index : Integer): Boolean;
|
|
begin
|
|
begin
|
|
Result:=Items[Index].IsNull;
|
|
Result:=Items[Index].IsNull;
|
|
@@ -945,6 +1130,11 @@ begin
|
|
Items[Index]:=TJSONIntegerNumber.Create(AValue);
|
|
Items[Index]:=TJSONIntegerNumber.Create(AValue);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONArray.SetInt64s(Index : Integer; const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ Items[Index]:=TJSONInt64Number.Create(AValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONArray.SetObjects(Index : Integer; const AValue: TJSONObject);
|
|
procedure TJSONArray.SetObjects(Index : Integer; const AValue: TJSONObject);
|
|
begin
|
|
begin
|
|
Items[Index]:=AValue;
|
|
Items[Index]:=AValue;
|
|
@@ -979,6 +1169,11 @@ begin
|
|
ConvertError(True);
|
|
ConvertError(True);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONArray.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ ConvertError(True);
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONArray.SetAsBoolean(const AValue: Boolean);
|
|
procedure TJSONArray.SetAsBoolean(const AValue: Boolean);
|
|
begin
|
|
begin
|
|
ConvertError(False);
|
|
ConvertError(False);
|
|
@@ -993,6 +1188,10 @@ procedure TJSONArray.SetAsInteger(const AValue: Integer);
|
|
begin
|
|
begin
|
|
ConvertError(False);
|
|
ConvertError(False);
|
|
end;
|
|
end;
|
|
|
|
+procedure TJSONArray.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ ConvertError(False);
|
|
|
|
+end;
|
|
{$warnings on}
|
|
{$warnings on}
|
|
|
|
|
|
function TJSONArray.GetAsJSON: TJSONStringType;
|
|
function TJSONArray.GetAsJSON: TJSONStringType;
|
|
@@ -1074,7 +1273,7 @@ begin
|
|
else
|
|
else
|
|
Result:=TJSONNull.Create;
|
|
Result:=TJSONNull.Create;
|
|
vtCurrency : Result:=TJSONFloatNumber.Create(vCurrency^);
|
|
vtCurrency : Result:=TJSONFloatNumber.Create(vCurrency^);
|
|
- vtInt64 : Result:=TJSONFloatNumber.Create(vInt64^);
|
|
|
|
|
|
+ vtInt64 : Result:=TJSONInt64Number.Create(vInt64^);
|
|
vtObject : if (VObject is TJSONData) then
|
|
vtObject : if (VObject is TJSONData) then
|
|
Result:=TJSONData(VObject)
|
|
Result:=TJSONData(VObject)
|
|
else
|
|
else
|
|
@@ -1147,6 +1346,11 @@ begin
|
|
Result:=Add(TJSONIntegerNumber.Create(I));
|
|
Result:=Add(TJSONIntegerNumber.Create(I));
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONArray.Add(I: Int64): Int64;
|
|
|
|
+begin
|
|
|
|
+ Result:=Add(TJSONInt64Number.Create(I));
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONArray.Add(S: String): Integer;
|
|
function TJSONArray.Add(S: String): Integer;
|
|
begin
|
|
begin
|
|
Result:=Add(TJSONString.Create(S));
|
|
Result:=Add(TJSONString.Create(S));
|
|
@@ -1218,6 +1422,11 @@ begin
|
|
Result:=GetElements(AName).AsInteger;
|
|
Result:=GetElements(AName).AsInteger;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONObject.GetInt64s(AName : String): Int64;
|
|
|
|
+begin
|
|
|
|
+ Result:=GetElements(AName).AsInt64;
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONObject.GetIsNull(AName : String): Boolean;
|
|
function TJSONObject.GetIsNull(AName : String): Boolean;
|
|
begin
|
|
begin
|
|
Result:=GetElements(AName).IsNull;
|
|
Result:=GetElements(AName).IsNull;
|
|
@@ -1276,6 +1485,11 @@ begin
|
|
SetElements(AName,TJSONIntegerNumber.Create(AVAlue));
|
|
SetElements(AName,TJSONIntegerNumber.Create(AVAlue));
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+procedure TJSONObject.SetInt64s(AName : String; const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ SetElements(AName,TJSONInt64Number.Create(AVAlue));
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONObject.SetIsNull(AName : String; const AValue: Boolean);
|
|
procedure TJSONObject.SetIsNull(AName : String; const AValue: Boolean);
|
|
begin
|
|
begin
|
|
If Not AValue then
|
|
If Not AValue then
|
|
@@ -1317,6 +1531,11 @@ begin
|
|
ConvertError(True);
|
|
ConvertError(True);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONObject.GetAsInt64: Int64;
|
|
|
|
+begin
|
|
|
|
+ ConvertError(True);
|
|
|
|
+end;
|
|
|
|
+
|
|
procedure TJSONObject.SetAsBoolean(const AValue: Boolean);
|
|
procedure TJSONObject.SetAsBoolean(const AValue: Boolean);
|
|
begin
|
|
begin
|
|
ConvertError(False);
|
|
ConvertError(False);
|
|
@@ -1331,6 +1550,11 @@ procedure TJSONObject.SetAsInteger(const AValue: Integer);
|
|
begin
|
|
begin
|
|
ConvertError(False);
|
|
ConvertError(False);
|
|
end;
|
|
end;
|
|
|
|
+
|
|
|
|
+procedure TJSONObject.SetAsInt64(const AValue: Int64);
|
|
|
|
+begin
|
|
|
|
+ ConvertError(False);
|
|
|
|
+end;
|
|
{$warnings on}
|
|
{$warnings on}
|
|
|
|
|
|
function TJSONObject.GetAsJSON: TJSONStringType;
|
|
function TJSONObject.GetAsJSON: TJSONStringType;
|
|
@@ -1498,6 +1722,11 @@ begin
|
|
Result:=Add(AName,TJSONIntegerNumber.Create(AValue));
|
|
Result:=Add(AName,TJSONIntegerNumber.Create(AValue));
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TJSONObject.Add(const AName: TJSONStringType; Avalue: Int64): Integer;
|
|
|
|
+begin
|
|
|
|
+ Result:=Add(AName,TJSONInt64Number.Create(AValue));
|
|
|
|
+end;
|
|
|
|
+
|
|
function TJSONObject.Add(const AName: TJSONStringType): Integer;
|
|
function TJSONObject.Add(const AName: TJSONStringType): Integer;
|
|
begin
|
|
begin
|
|
Result:=Add(AName,TJSONNull.Create);
|
|
Result:=Add(AName,TJSONNull.Create);
|