mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-04 18:10:26 +02:00
* Add WideString support in json string constructor
git-svn-id: trunk@42782 -
This commit is contained in:
parent
00a418f589
commit
dc3b9b4ab0
@ -2498,6 +2498,7 @@ begin
|
||||
vtString : Result:=CreateJSON(vString^);
|
||||
vtAnsiString : Result:=CreateJSON(UTF8Decode(StrPas(VPChar)));
|
||||
vtUnicodeString: Result:=CreateJSON(UnicodeString(VUnicodeString));
|
||||
vtWideString: Result:=CreateJSON(WideString(VWideString));
|
||||
vtPChar : Result:=CreateJSON(StrPas(VPChar));
|
||||
vtPointer : If (VPointer<>Nil) then
|
||||
TJSONData.DoError(SErrPointerNotNil,[SourceType])
|
||||
|
@ -53,7 +53,7 @@ type
|
||||
Procedure SetUp; override;
|
||||
Procedure TestItemCount(J : TJSONData;Expected : Integer);
|
||||
Procedure TestJSONType(J : TJSONData;Expected : TJSONType);
|
||||
Procedure TestJSON(J : TJSONData;Expected : String);
|
||||
Procedure TestJSON(J : TJSONData;Expected : TJSONStringType);
|
||||
Procedure TestIsNull(J : TJSONData;Expected : Boolean);
|
||||
Procedure TestAsBoolean(J : TJSONData;Expected : Boolean; ExpectError : boolean = False);
|
||||
Procedure TestAsInteger(J : TJSONData; Expected : Integer; ExpectError : boolean = False);
|
||||
@ -239,6 +239,7 @@ type
|
||||
procedure TestCreateBooleanUnquoted;
|
||||
procedure TestCreateObject;
|
||||
procedure TestCreateJSONUnicodeString;
|
||||
procedure TestCreateJSONWideString;
|
||||
procedure TestCreateJSONString;
|
||||
procedure TestCreateJSONStringUnquoted;
|
||||
procedure TestCreateJSONObject;
|
||||
@ -1079,7 +1080,7 @@ begin
|
||||
AssertEquals(J.ClassName+'.JSONType',Ord(Expected),Ord(J.JSONType));
|
||||
end;
|
||||
|
||||
Procedure TTestJSON.TestJSON(J: TJSONData; Expected: String);
|
||||
Procedure TTestJSON.TestJSON(J: TJSONData; Expected: TJSONStringType);
|
||||
begin
|
||||
AssertEquals(J.ClassName+'.AsJSON',Expected,J.AsJSON);
|
||||
end;
|
||||
@ -3940,7 +3941,26 @@ begin
|
||||
try
|
||||
TestItemCount(O,1);
|
||||
TestJSONType(O[A],jtString);
|
||||
TestJSON(O,'{ "A" : "'+S+'" }');
|
||||
TestJSON(O,'{ "A" : "'+UTF8Encode(S)+'" }');
|
||||
finally
|
||||
FreeAndNil(O);
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestObject.TestCreateJSONWideString;
|
||||
Const
|
||||
A = 'A';
|
||||
W : WideString = 'A string';
|
||||
|
||||
Var
|
||||
O : TJSONObject;
|
||||
|
||||
begin
|
||||
O:=TJSONObject.Create([A,W]);
|
||||
try
|
||||
TestItemCount(O,1);
|
||||
TestJSONType(O[A],jtString);
|
||||
TestJSON(O,'{ "A" : "'+UTF8Encode(W)+'" }');
|
||||
finally
|
||||
FreeAndNil(O);
|
||||
end;
|
||||
|
Loading…
Reference in New Issue
Block a user