我们已宣布
使用 JSON
JSON 是一种数据交换格式,便于人类阅读,并且是机器可读的。虽然名称 JSON 是 JavaScript 对象表示法 (JavaScript Object Notation) 的缩写,但 JSON 的格式独立于任何编程语言。
SDK for JavaScript 在发出请求时使用 JSON 将数据发送到服务对象,并以 JSON 格式从服务对象接收数据。有关 JSON 的更多信息,请参阅 json.org
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 函数时,FunctionName
、InvocationType
和 LogType
是用于在 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 } ] }