

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

# parseJson
<a name="parseJson-function"></a>

使用 `parseJson` 從 JSON 物件擷取值。

如果您的資料集存放在快速 中SPICE，您可以在準備資料集`parseJson`時使用 ，但不能在分析期間的計算欄位中使用。

對於直接查詢，您可以同時對資料準備和分析使用 `parseJson`。如下表所示，取決於方言，`parseJson` 函數會套用至字串或 JSON 原生資料類型。


| 方言 | Type | 
| --- | --- | 
| PostgreSQL | JSON | 
| Amazon Redshift | String | 
| Microsoft SQL Server | String | 
| MySQL | JSON | 
| Teradata | JSON | 
| Oracle | String | 
| Presto | String | 
| Snowflake | 半結構化的資料類型物件和陣列 | 
| Hive | String | 

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

```
parseJson(fieldName, path)
```

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

 *fieldName*   
包含您希望剖析的 JSON 物件的欄位。

 *路徑*   
您想要從 JSON 物件剖析的資料元素的路徑。路徑引數中僅支援字母、數字與空格。有效路徑的語法包括：  
+ *\$1*：根物件
+ *.*：子運算子
+ *[ ]*：陣列的下標運算子

## 傳回類型
<a name="parseJson-function-return-type"></a>

String

## 範例
<a name="parseJson-function-example-query"></a>

以下範例會評估傳入的 JSON 以擷取項目數量的值。透過使用此資料準備，您可以從 JSON 建立資料表。

```
parseJson({jsonField}, “$.items.qty”)
```

以下顯示 JSON。

```
{
    "customer": "John Doe",
    "items": {
        "product": "Beer",
        "qty": 6
    },
    "list1": [
        "val1",
        "val2"
    ],
    "list2": [
        {
            "list21key1": "list1value1"
        }
    ]
}
```

針對此範例，會傳回下列值。

```
6
```

## 範例
<a name="parseJson-function-example"></a>

以下範例會評估 `JSONObject1` 來擷取標籤為 `"State"` 的第一個金鑰值組 (KVP)，並將值指派到您要建立的評估欄位。

```
parseJson(JSONObject1, “$.state”)
```

以下是指定欄位的值。

```
JSONObject1
-----------
{"State":"New York","Product":"Produce","Date Sold":"1/16/2018","Sales Amount":"$3423.39"}
{"State":"North Carolina","Product":"Bakery Products","Date Sold":"2/1/2018","Sales Amount":"$3226.42"}
{"State":"Utah","Product":"Water","Date Sold":"4/24/2018","Sales Amount":"$7001.52"}
```

對於這些欄位值，會傳回以下資料列。

```
New York
North Carolina
Utah
```