Skip to main content

JSON Parse tool JSON 解析工具

单个工具示例

JSON 解析具有一个“单个工具示例”。转至示例工作流以了解如何在 Alteryx Designer 中访问此示例和其他更多示例。

使用 JSON 解析将 JavaScript 对象表示法 (JSON ) 文本分隔为表格架构,以进行下游处理。您可以将输出结果输入 JSON 构建器,将其重建为可用的 JSON 格式。

配置工具

  • JSON 字段:选择保存 JSON 文本的字段。字段必须包含有效的 JSON,并且一个记录的所有文本都包含在单个单元格中。请参阅此示例:

       {
            "firstName": "John",
            "lastName": "Smith",
            "age": 25,
            "address": {
                    "streetAddress": "21 2nd Street",
                    "city": "New York",
                    "state": "NY",
                    "postalCode": "10021"
    },
    "phoneNumber": [
            {
                    "type": "home",
                    "number": "212 555-1234"
            },
            {
                    "type": "fax",
                    "number": "646 555-4567"
            }
        ]
    }
  • 包含在输出中:所选列包含在工具传出的数据流中。

选择 JSON 的解析方式。选项包括...

  • 输出值到单个字符串字段

  • 将值输出至特定数据类型的字段

  • 取消嵌套 JSON 字段:此选项只能通过 AMP 使用。

  • 平展数组:此选项只能通过 AMP 使用。

有关上述每个选项的更多信息和示例,请参阅下面的部分。

此选项输出 2 个字段:JSON_NameJSON_ValueString。根据上面的输入示例,该工具会输出以下数据:

示例

JSON 输入
   {
        "firstName": "John",
        "lastName": "Smith",
        "age": 25,
        "address": {
                "streetAddress": "21 2nd Street",
                "city": "New York",
                "state": "NY",
                "postalCode": "10021"
},
"phoneNumber": [
        {
                "type": "home",
                "number": "212 555-1234"
        },
        {
                "type": "fax",
                "number": "646 555-4567"
        }
    ]
}
JSON 解析工具输出

JSON_Name

JSON_ValueString

名字

John

lastName

Smith

age

25

address.streetAddress

21 2nd Street

address.city

纽约

address.state

NY

address.postalCode

10021

phoneNumber.0.type

home

phoneNumber.0.number

212-555-1234

phoneNumber.1.type

fax

phoneNumber.1.number

646-555-4567

此选项输出以下 5 个字段:

字段名称

描述

JSON_Name

JSON_Name 是 JSON 对象(键:值对)中的“键”。键和任何分级类别之间用点隔开。

JSON_Value 字符串

JSON 对象(键:值对)中对应的字符串“值”。如果该值不是字符串,它将显示为 [Null]。

JSON_ValueInt

JSON 对象(键:值对)中对应的整数“值”。如果该值不是整数,它将显示为 [Null]。

JSON_ValueFloat

JSON 对象(键:值对)中对应的浮点数“值”。如果该值不是浮点数,它将显示为 [Null]。

JSON_ValueBool

JSON 对象(键:值对)中对应的布尔“值”。如果该值不是布尔值,它将显示为 [Null]。

示例

JSON 输入
   {
        "firstName": "John",
        "lastName": "Smith",
        "age": 25,
        "address": {
                "streetAddress": "21 2nd Street",
                "city": "New York",
                "state": "NY",
                "postalCode": "10021"
},
"phoneNumber": [
        {
                "type": "home",
                "number": "212 555-1234"
        },
        {
                "type": "fax",
                "number": "646 555-4567"
        }
    ]
}
JSON 解析工具输出

JSON_Name

JSON_ValueString

JSON_ValueInt

JSON_ValueFloat

JSON_ValueBool

名字

John

[Null]

[Null]

[Null]

lastName

Smith

[Null]

[Null]

[Null]

age

[Null]

25

[Null]

[Null]

address.streetAddress

21 2nd Street

[Null]

[Null]

[Null]

address.city

纽约

[Null]

[Null]

[Null]

address.state

NY

[Null]

[Null]

[Null]

address.postalCode

10021

[Null]

[Null]

[Null]

phoneNumber.0.type

home

[Null]

[Null]

[Null]

phoneNumber.0.number

212-555-1234

[Null]

[Null]

[Null]

phoneNumber.1.type

fax

[Null]

[Null]

[Null]

phoneNumber.1.number

646-555-4567

[Null]

[Null]

[Null]

此选项允许将嵌套的 JSON 对象展开成列。操作只深入到 JSON 对象的第一层嵌套。

警告

取消嵌套 JSON 字段只能通过 AMP 实现。

示例

JSON 输入

用输入中具有以下值的“hours”列为例:

{    
    "Tuesday": {"close": "17:00", "open": "08:00"},
    "Friday": {"close": "17:00", "open": "08:00"},
    "Monday": {"close": "17:00", "open": "08:00"},
    "Wednesday": {"close": "17:00", "open": "08:00"},
    "Thursday": {"close": "17:00", "open": "08:00"}
}
JSON 解析工具输出

这是将上述“hours”列取消嵌套的输出:

hours.Tuesday

hours.Friday

hours.Monday

hours.Wednesday

hours.Thursday

{"close":"17:00","open":"08:00"}

{"close":"17:00","open":"08:00"}

{"close":"17:00","open":"08:00"}

{"close":"17:00","open":"08:00"}

{"close":"17:00","open":"08:00"}

  • 将“hours”列取消嵌套会输出“hours.Tuesday”、“hours.Friday”、“hours.Monday”等列。

  • “hours.Tuesday”继续携带对象:{"close": "17:00", "open": "08:00"}。您可以使用另一个 JSON 解析工具继续将其展开,得到 hours.Tuesday.close 和 hours.Tuesday.open。

此选项仅适用于具有数组值的列。使用此选项可通过去除方括号来展开 JSON 数组列。这会为每个元素创建一个单独的行,用逗号分隔,并为每行分配一个 ID。

警告

平展数组只能通过 AMP 实现。

示例

JSON 输入

用下面方括号中的数组输入为例,其中列名称为“hours”,列的值为数组:

[    
    {"day": "Monday", "open": "08:00", "close": "17:00"},
    {"day": "Tuesday", "open": "08:00", "close": "17:00"},
    {"day": "Wednesday", "open": "08:00", "close": "17:00"},
    {"day": "Thursday", "open": "08:00", "close": "17:00"},
    {"day": "Friday", "open": "08:00", "close": "17:00"}
]
JSON 解析工具输出

hours_flatten

hours_idx

{"day":"Monday","open":"08:00","close":"17:00"}

1

{"day":"Tuesday","open":"08:00","close":"17:00"}

2

{"day":"Wednesday","open":"08:00","close":"17:00"}

3

{"day":"Thursday","open":"08:00","close":"17:00"}

4

{"day":"Friday","open":"08:00","close":"17:00"}

5