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

相关阅读 >>

Delphi 使用钩子函数建立一个全局的鼠标钩子

Delphi 给字加边的又一个算法

Delphi 使用shgetfileinfo函数获取任何文件大图标

Delphi ios 保持设备开机状态

system单元一些有用的变量或者常数

Delphi fmx app 设置 程序图标,闪屏,程序名

Delphi 获取系统桌面大小

Delphi应用synedit完美实现sql语法高亮

如何判断硬盘是fat32还是ntfs

Delphi控制程序在任务栏显示与隐藏

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...