DelphiでJSON文字列を作成する

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;

DelphiのJSON関連の記事

コメント

  1. こんにちは。
    いつも参考にさせて頂いています。
    質問です。
    JSON.AddPair(‘Integer’, TJSONNumber.Create(789));
    の第2引数で、 TJSONNumber を Create していますが、
    これの解放は不要なのでしょうか?
    JSON.Free で解放されたりするのでしょうか?

  2. TJSONObjectのソースコードを見ると、デストラクタ(destructor TJSONObject.Destroy;)で追加したオブジェクトは破棄されています。
    そのため、追加したオブジェクトを個別に解放する必要はないと思います。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください