AWS SDK for JavaScript v2 はサポート終了となりました。AWS SDK for JavaScript v3 に移行することをお勧めします。その他の詳細、移行方法については、こちらの発表内容
JSON の使用
JSON は、人間にも機械にも読み取り可能な、データ交換のための形式です。JSON という名前は、JavaScript Object Notation の頭字語ですが、JSON の形式はどのプログラミング言語にも依存しません。
SDK for JavaScript は、リクエストを行うときに JSON を使用してサービスオブジェクトにデータを送信し、サービスオブジェクトからデータを JSON として受信します。JSON の詳細については、json.org
JSON は 2 つの方法でデータを表します。
オブジェクトは、順序が設定されていない一連の名前と値のペアです。オブジェクトは左中括弧 (
{) と右中括弧 (}) で囲んで定義します。それぞれの名前と値のペアは名前で始まり、続けてコロン、その後に値が続きます。名前と値のペアはカンマで区切ります。配列は、順序が設定された一連の値です。配列は左角括弧 (
[) と右角括弧 (]) で囲んで定義します。配列の項目はカンマで区切ります。
これは、オブジェクトの配列を含む JSON オブジェクトの例です。オブジェクトは、カードゲームのカードを表しています。各カードは 2 つの名前と値のペアで定義されます。1 つはそのカードを識別するための一意の値を指定し、もう 1 つは対応するカードイメージを指す URL を指定します。
var cards = [{"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}, {"CardID":"defaultname", "Image":"defaulturl"}];
サービスオブジェクトパラメータとしての JSON
次の例では、シンプルな JSON を使用して Lambda サービスオブジェクトへの呼び出しのパラメータを定義します。
var pullParams = { FunctionName : 'slotPull', InvocationType : 'RequestResponse', LogType : 'None' };
pullParams オブジェクトは、左右の中括弧内にコンマで区切られた、3 つの名前と値のペアによって定義されています。サービスオブジェクトメソッドの呼び出しにパラメータを指定する場合、呼び出す予定のサービスオブジェクトメソッドのパラメータ名によって名前が決まります。Lambda 関数を呼び出すとき、FunctionName、InvocationType、および LogType は、Lambda サービスオブジェクトの invoke メソッドの呼び出しに使用されるパラメータです。
サービスオブジェクトのメソッド呼び出しにパラメータを渡すとき、次の Lambda 関数の呼び出しの例に示されているように、メソッド呼び出しに JSON オブジェクトを渡します。
lambda = new AWS.Lambda({region: 'us-west-2', apiVersion: '2015-03-31'}); // create JSON object for service call parameters var pullParams = { FunctionName : 'slotPull', InvocationType : 'RequestResponse', LogType : 'None' }; // invoke Lambda function, passing JSON object lambda.invoke(pullParams, function(err, data) { if (err) { console.log(err); } else { console.log(data); } });
データを JSON として返す
JSON は、同時に複数の値を送信する必要があるアプリケーションの部分間でデータを渡すための標準的な方法を提供します。通常、API のクライアントクラスのメソッドは、コールバック関数に渡される data パラメータに JSON を返します。例えば、Amazon S3 クライアントクラスの getBucketCors メソッドの呼び出しは次のとおりです。
// call S3 to retrieve CORS configuration for selected bucket s3.getBucketCors(bucketParams, function(err, data) { if (err) { console.log(err); } else if (data) { console.log(JSON.stringify(data)); } });
data の値は JSON オブジェクトです。この例では、指定された Amazon S3 バケットの現在の CORS 設定を記述する JSON です。
{ "CORSRules": [ { "AllowedHeaders":["*"], "AllowedMethods":["POST","GET","PUT","DELETE","HEAD"], "AllowedOrigins":["*"], "ExposeHeaders":[], "MaxAgeSeconds":3000 } ] }