

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# parseJson
parseJson

使用 `parseJson` 从 JSON 对象提取值。

如果您的数据集存储在 Quick 中SPICE，则可以在准备数据集`parseJson`时使用，但不能在分析期间存储在计算字段中。

对于直接查询，您可以在数据准备和分析期间使用 `parseJson`。`parseJson` 函数适用于字符串或 JSON 本机数据类型，具体视方言而定（如下表所示）。


| Dialect | Type | 
| --- | --- | 
| PostgreSQL | JSON | 
| Amazon Redshift | 字符串 | 
| Microsoft SQL Server | 字符串 | 
| MySQL | JSON | 
| Teradata | JSON | 
| Oracle | 字符串 | 
| ：Presto | 字符串 | 
| Snowflake | 半结构化数据类型对象和数组 | 
| Hive | 字符串 | 

## 语法


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

## Arguments


 *fieldName*   
包含您要解析的 JSON 对象的字段。

 *path*   
要从 JSON 对象中解析的数据元素的路径。路径参数仅支持字母、数字和空格。有效的路径语法包括：  
+ *\$1* – 根对象
+ *.* – 子运算符
+ *[ ]* – 数组的下标运算符

## 返回类型


字符串

## 示例


以下示例评估传入的 JSON 以检索项目数量的值。通过在数据准备期间使用它，您可以从 JSON 创建表。

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

下面显示了 JSON 内容。

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

在本示例中，将返回以下值。

```
6
```

## 示例


以下示例评估 `JSONObject1` 以提取第一个键值对（KVP）（其标签为 `"State"`），并将该值分配给正在创建的计算字段。

```
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
```