FreeAndNil(serializer);end;end;こんな感じでレコードをJSONデータにシリアライズできます。FreeAndNil(serializer);end;end;こんな感じでJSONデータからレコード型に代入できます。これで面倒な処理は任せる事が出来ます。ライブラリって便利ですね。実際のサンプルとしてはこんな感じ。beginA:='-';B:='-';D:='-';end;s:=Memo1.Lines[1];RtA:=LoadFromJsonA(s);s:=Memo1.Lines[0];RtB:=LoadFromJsonB(s);end;Button1,Button2,Memo1を配置して、イベントハンドラを上記ソースのように設定します。何をやっているかというと、ボタン1をクリックすると2つの異なるレコード型変数に値をセットします。そのレコード型変数の内容を先ほどの関数を使ってシリアライズします。Memo1にそれぞれのデータを表示させます。上が変数RtA(TRecordA型レコード)の内容をJSON形式で表したもの。下が変数RtB(TRecordB型レコード)の内容をJSON形式で表したものになります。{“A”:”A”,”B”:”B”,”C”:”C”}{“A”:”A”,”B”:”B”,”D”:”D”}次に、ボタン2をクリックすると変数RtA、RtBの内容を初期化して、Memo1に表示されているJSON形式のデータを取得し、それをもとにレコード型変数に代入しています。その際、RtAとRtBのデータを逆に読み込んでいます。RtA用のJSONデータをRtB変数に読み込ませ、RtB用のJSONデータをRtA変数に読み込ませています。ボタン1をクリックした後、ボタン2をクリックしたらどうなるか?異なるレコード型のJSONデータを読み込んだらどうなるかという実験です。実行結果はこうなりました。=>ボタン2をクリックした際に、それぞれの変数は初期化しました。その際に、各フィールド(レコード内の変数A,B,CまたはD)には‐(半角マイナス)を設定したのですが、実行結果としてはJSONデータにないフィールドは空文字になりました。事前に初期値を設定しておくという方法は使えないという事になります。この点はちょいと面倒です。設定でどうにかなるのかもしれませんが、この点に関しては現時点では情報を把握していません。レコードフィールドにない(定義されていない)データは切り捨てられます。Windows7です。アプリ内で使用するデータ形式(フィールド内容)が変更されることは良くあることです。バージョンが変わるとデータが読めなくなるというのは問題ですから、こういった問題はライブラリに任せる事が出来るので安心です。これで安心してフィールドの追加などが出来るという事が分かりました。ちなみに、レコードの中にレコードを入れるとどうなるかというと、こうなります。内容はこんな感じになります。{“ID”:1,”Name”:”Test”,”RecordNest”:{“ID”:2,”Name”:”Nest”}}上手く出来てますな。この機能の使いどころとしては、通常のアプリ内で作成するデータをリスト化してJSONデータ(テキストデータ)として保存するという方法もあります。そのほかには、フォーム位置をレコード型で定義しておいて、フォーム位置の保存・復帰に使用するという方法もあります。設定データをレコード型で定義して、それを保存・復帰するという方法もあります。基礎知識としてはこんなところでしょうか。呼び出し側でシリアライザー(serializer:=TJsonSerializer.Create;の部分)を生成しておいてから、引数として関数に渡した方がコストとしては良いのではないかと思います。次の記事はフォームの位置・サイズをJSON形式で読み書きするです。シェアするツイートフォローするnorimaki関連記事フォームの位置・サイズをJSON形式で読み書きするこの記事は、レコードデータをJSON形式で読み書きするの記事の続きです。書いていきたいと思います。前回と同様に、こちらのサイトを参考にさせてもらいました。面倒臭いことが何よりも大嫌いDelphi(ツール開発環境)の最新バージョンが欲しいけれどもさすがにホイホイと購入できるほど余裕は無いわけで。テンミニッツサイトストラテジー.。