DelphiでJSON文字列を作成する方法を紹介します。
キーと値のペアを作成するにはTJSONObjectを使用します。
uses Data.DBXJSON;
var
JSON: TJSONObject;
begin
//キーと値のペア
JSON := TJSONObject.Create;
JSON.AddPair('name', 'John Smith');
JSON.AddPair('age', '33');
Memo1.Lines.Text := JSON.ToString; //=> {"name":"John Smith","age":"33"}
JSON.Free;
値に数値を使用するときはTJSONNumberを使用します。
TJSONNumberのCreateはDouble、Integer、Int64、stringを受け取ります。
uses Data.DBXJSON;
var
JSON: TJSONObject;
begin
JSON := TJSONObject.Create;
JSON.AddPair('Double', TJSONNumber.Create(123.456));
JSON.AddPair('Integer', TJSONNumber.Create(789));
JSON.AddPair('string', TJSONNumber.Create('1000'));
Memo1.Lines.Text := JSON.ToString; //=> {"Double":123.456,"Integer":789,"string":1000}
JSON.Free;
値に真偽値を使用するときはTJSONTrueとTJSONFalseを使用します。
uses Data.DBXJSON;
var
JSON: TJSONObject;
begin
JSON := TJSONObject.Create;
JSON.AddPair('真', TJSONTrue.Create);
JSON.AddPair('偽', TJSONFalse.Create);
Memo1.Lines.Text := JSON.ToString; //=> {"真":true,"偽":false}
JSON.Free;
配列を作成するにはTJSONArrayを使用します。
uses Data.DBXJSON;
var
JSONArray: TJSONArray;
begin
JSONArray := TJSONArray.Create;
JSONArray.Add('milk');
JSONArray.Add('bread');
JSONArray.Add('eggs');
Memo1.Lines.Text := JSONArray.ToString; //=> ["milk","bread","eggs"]
JSONArray.Free;
こんにちは。
いつも参考にさせて頂いています。
質問です。
JSON.AddPair(‘Integer’, TJSONNumber.Create(789));
の第2引数で、 TJSONNumber を Create していますが、
これの解放は不要なのでしょうか?
JSON.Free で解放されたりするのでしょうか?
TJSONObjectのソースコードを見ると、デストラクタ(destructor TJSONObject.Destroy;)で追加したオブジェクトは破棄されています。
そのため、追加したオブジェクトを個別に解放する必要はないと思います。