

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

# TO\$1JSON 函數
<a name="TO_JSON"></a>

TO\$1JSON 函數會將輸入表達式轉換為 JSON 字串表示法。函數會處理將不同資料類型 （例如數字、字串和布林值） 轉換為其對應的 JSON 表示法。

當您需要將結構化資料 （例如資料庫資料列或 JSON 物件） 轉換為更具可攜式、自我描述的格式，例如 JSON 時，TO\$1JSON 函數很有用。當您需要與預期 JSON 格式資料的其他系統或服務互動時，這特別有用。

## 語法
<a name="TO_JSON-syntax"></a>

```
to_json(expr[, options])
```

## 引數
<a name="TO_JSON-arguments"></a>

*expr*  
您要轉換為 JSON 字串的輸入表達式。它可以是值、資料欄或任何其他有效的 SQL 表達式。

*options*  
選用的組態選項集，可用於自訂 JSON 轉換程序。這些選項可能包括 Null 值的處理方式、數值的表示方式，以及特殊字元的處理方式。

## 傳回值
<a name="TO_JSON-returns"></a>

傳回具有指定結構值的 JSON 字串

## 範例
<a name="TO_JSON-examples"></a>

下列範例會將具名結構 （結構化資料的類型） 轉換為 JSON 字串。第一個引數 `(named_struct('a', 1, 'b', 2)`) 是傳遞給`to_json()`函數的輸入表達式。它會建立具有兩個欄位的具名結構：值為 1 的 "a" 和值為 2 的 "b"。to\$1json() 函數採用具名結構做為其引數，並將其轉換為 JSON 字串表示法。輸出為 `{"a":1,"b":2}`，這是代表具名結構的有效 JSON 字串。

```
SELECT to_json(named_struct('a', 1, 'b', 2));
 {"a":1,"b":2}
```

下列範例會將包含時間戳記值的具名結構轉換為具有自訂時間戳記格式的 JSON 字串。第一個引數 (`named_struct('time', to_timestamp('2015-08-26', 'yyyy-MM-dd'))`) 會使用包含時間戳記值的單一欄位 'time' 建立具名結構。第二個引數 (`map('timestampFormat', 'dd/MM/yyyy')`) 會使用單一索引鍵/值對建立映射 （索引鍵/值字典），其中索引鍵為 'timestampFormat'，而值為 'dd/MM/yyyy'。此映射用於在轉換為 JSON 時指定時間戳記值的所需格式。to\$1json() 函數會將具名結構轉換為 JSON 字串。第二個引數映射用於自訂時間戳記格式為 'dd/MM/yyyy'。輸出為 `{"time":"26/08/2015"}`，這是具有單一欄位 'time' 的 JSON 字串，其中包含所需 'dd/MM/yyyy' 格式的時間戳記值。

```
SELECT to_json(named_struct('time', to_timestamp('2015-08-26', 'yyyy-MM-dd')), map('timestampFormat', 'dd/MM/yyyy'));
 {"time":"26/08/2015"}
```