- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi10.2.3解决的一个JSON问题
发现在Delphi 10.1.2上,下面的代码生成的JSON串不对:
procedure TForm2.btn1Click(Sender: TObject);
var
jo:TJSONObject;
s:string;
begin
jo:=TJSONObject.Create;
jo.AddPair('test','');
s:=jo.ToJSON;
ShowMessage(s);
end;
换到Delphi 10.2.3下,则正常输出:
'{"test":""}'
查看代码,发现10.2.3是这样实现的:
function TJSONObject.AddPair(const Str: string; const Val: string): TJSONObject;
begin
if (not Str.IsEmpty) then
AddPair(TJSONPair.Create(Str, Val));
Result := Self;
end;
而10.1.2是这样实现的:
function TJSONObject.AddPair(const Str: string; const Val: string): TJSONObject;
begin
if (not Str.IsEmpty) and (not Val.IsEmpty) then
AddPair(TJSONPair.Create(Str, Val));
Result := Self;
end;
明显是10.1.2的bug,还好在新版本中修正了!
http://blog.sina.com.cn/s/blog_44fa172f0102x3i5.html