Delphi2010 已经自带JSON的解析及生成引擎,见:DBXJSON 单元
通过如下代码:procedure TForm1.btn1Click(Sender: TObject);var LJsonObj: TJSONObject; LJStr: TJSONString;begin LJsonObj := TJSONObject.Create; try LJStr := TJSONString.Create('1233'); LJStr.Owned := True; LJsonObj.AddPair('Data', LJStr); CodeSite.Send(LJsonObj.ToString); finally LJsonObj.Free; end;end;
即可生成JSON格式的数据:{"Data":"1233"}
注意:如果想由TJSONObject自己管理其中的对象,需要将引用对象的Owned属性设置成True。
参见TJSONObject源码:
destructor TJSONObject.Destroy;var Member: TJSONAncestor; I: Integer;begin if FMembers <> nil then begin for i := 0 to FMembers.Count - 1 do begin Member := TJSONAncestor(FMembersI); if Member.GetOwned then Member.Free; end; FreeAndNil(FMembers); end; inherited Destroy;end;