Page History
...
例えば、XPRIM_JsonWriter を使って、次の JSON 文字列を構築したとします。
...
{ "name":
...
{ "given":"John",
...
"surname":"Smith"
...
}, "age":45,
...
"contactNo":
...
[ { area:"02",
...
no:"9378
...
2867",
...
type:"landline"
...
},
...
{ no:"0468
...
732
...
371",
...
type:"mobile"
...
} ]}
最初に XPRIM_JsonWriter オブジェクトを作成します。
Define_Com Class(#XPRIM_JsonWriter) Name(#Writer)
ライターの出力モードを指定します。次の 3 種類の出力モードがサポートされています。
...
次の例では、文字列を生成するので、出力モードを String (文字列) に設定します。
#Writer.SetOutputToString
BeginObject (または BeginArray) を使って、ルート・オブジェクト (またはアレイ) を開始します。
#Writer.BeginObject
"name" メンバを書き込みます。この値はオブジェクトです。
BeginObject を Name パラメータと共に使用して、オブジェクト・メンバを作成します。
#Writer.BeginObject Name('name')
JSON 文字列は次のようになります。
{ "name": {
次に "given" と "surname" メンバを書き込みます。
#Writer.WriteString Name('given') Value('John')#Writer.WriteString Name('surname') Value('Smith')
name メンバ・オブジェクトを閉じます。
#Writer.EndObject
ここまでで、JSON 文字列は次のようになります。
{ "name": { "given":"John", "surname":"Smith" }
"age" メンバを書き込みます。
#Writer.WriteNumber Name('age') Value(45)
そして、"contactNo" メンバを書き込みます。これはアレイです。 BeginArray を使用します。
#Writer.BeginArray Name('contactNo')
次に最初の contactNo アイテムを書き込みます。これはオブジェクトなので、BeginObject を使います。 アレイ要素の書き込み時はインデックスを指定する必要はありません。これは、常に順番に書き込まれていくからです。
#Writer.BeginObject#Writer.WriteString Name('area') Value('02')#Writer.WriteString Name('no') Value('9378 2867')#Writer.WriteString Name('type') Value('landline')#Writer.EndObject
2 番目の contactNo アイテムを書き込みます。
#Writer.BeginObject#Writer.WriteString Name('no') Value('0468 732 371')#Writer.WriteString Name('type') Value('mobile')#Writer.EndObject
contactNo アレイを閉じます。
#Writer.EndArray
ルート・オブジェクトを閉じます。
#Writer.EndObject
これで、AsString メソッドを使ってコンストラクト JSON 文字列にアクセスできるようになります。
#MyJsonString := #Writer.AsString