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_Name
和 JSON_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 对象(键:值对)中的“键”。键和任何分级类别之间用点隔开。 |
| JSON 对象(键:值对)中对应的字符串“值”。如果该值不是字符串,它将显示为 [Null]。 |
| JSON 对象(键:值对)中对应的整数“值”。如果该值不是整数,它将显示为 [Null]。 |
| JSON 对象(键:值对)中对应的浮点数“值”。如果该值不是浮点数,它将显示为 [Null]。 |
| 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 |