

 [適用於 JavaScript 的 AWS SDK V3 API 參考指南](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/)詳細說明 第 3 版 適用於 JavaScript 的 AWS SDK (V3) 的所有 API 操作。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 JSON
<a name="working-with-json"></a>

JSON 是資料交換的格式，可人類讀取且機器可讀取。雖然 JSON 名稱是 *JavaScript 物件標記*法的縮寫，但 JSON 的格式與任何程式設計語言無關。

 適用於 JavaScript 的 AWS SDK 使用 JSON 在提出請求時將資料傳送至服務物件，並從服務物件接收資料做為 JSON。如需 JSON 的詳細資訊，請參閱 [json.org](https://json.org)。

![\[顯示 JSON 的一般格式和部分結構。\]](http://docs.aws.amazon.com/zh_tw/sdk-for-javascript/v3/developer-guide/images/json-format.png)


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 即服務物件參數
<a name="json-as-parameters-passed"></a>

以下是用於定義呼叫 AWS Lambda 服務物件之參數的簡單 JSON 範例。

```
const params = {
   FunctionName : funcName,
   Payload : JSON.stringify(payload),
   LogType : LogType.Tail,
};
```

`params` 物件是由三個名稱/值對所定義，系統會在左右括號內以逗號分隔該物件。提供參數給服務物件方法呼叫時，名稱會依欲呼叫之服務物件方法的參數名稱而定。叫用 Lambda 函數時，`FunctionName`、 `Payload`和 ` LogType`是用來在 Lambda 服務物件上呼叫 `invoke`方法的參數。

將參數傳遞至服務物件方法呼叫時，請將 JSON 物件提供給方法呼叫，如下列叫用 Lambda 函數的範例所示。

```
const invoke = async (funcName, payload) => {
  const client = new LambdaClient({});
  const command = new InvokeCommand({
    FunctionName: funcName,
    Payload: JSON.stringify(payload),
    LogType: LogType.Tail,
  });

  const { Payload, LogResult } = await client.send(command);
  const result = Buffer.from(Payload).toString();
  const logs = Buffer.from(LogResult, "base64").toString();
  return { logs, result };
};
```