JSON の使用 - AWS SDK for JavaScript

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 の一般的なフォーマットと一部を表示しています。

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 関数を呼び出すとき、FunctionNameInvocationType、および 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 } ] }