使用 JSON - AWS SDK for JavaScript

我们已宣布即将终止对 AWS SDK for JavaScript v2 的支持。建议您迁移到 AWS SDK for JavaScript v3。有关日期、其他详细信息以及如何迁移的信息,请参阅链接的公告。

使用 JSON

JSON 是一种数据交换格式,便于人类阅读,并且是机器可读的。虽然名称 JSON 是 JavaScript 对象表示法 (JavaScript Object Notation) 的缩写,但 JSON 的格式独立于任何编程语言。

SDK for JavaScript 在发出请求时使用 JSON 将数据发送到服务对象,并以 JSON 格式从服务对象接收数据。有关 JSON 的更多信息,请参阅 json.org

显示 JSON 的一般格式和组成部分。

JSON 通过两种方式表示数据:

  • 对象,其是无序名称-值对集合。对象在左大括号 ({) 和右大括号 (}) 内定义。每个名称-值对以名称开头,后接一个冒号,再接值。名称/值对以逗号分隔。

  • 数组,其是有序值集合。数组在左方括号 ([) 和右方括号 (]) 内定义。数组中的项目以逗号分隔。

下面是 JSON 对象示例,其中包含一个对象数组,这些对象表示扑克游戏中的扑克。每张扑克都由两个名称/值对定义,一个指定用于表示扑克的唯一值,另一个指定指向对应扑克图像的 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 对象由三个名称/值对定义,在左右大括号中以逗号分隔。向服务对象方法调用提供参数时,名称由您计划调用的服务对象方法的参数名称确定。调用 Lambda 函数时,FunctionNameInvocationTypeLogType 是用于在 Lambda 服务对象上调用 invoke 方法的参数。

将参数传递给服务对象方法调用时,将 JSON 对象提供给方法调用,如下面调用 Lambda 函数的示例中所示。

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 } ] }