本文整理自网络,侵删。
发现在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使用tclientdataset时不携带midas.dll的方法
更多相关阅读请进入《Delphi》频道 >>