Herramienta Análisis JSON
Ejemplo de uso de herramienta
La herramienta Análisis JSON tiene un ejemplo de uso. Consulta Flujos de trabajo de muestra para aprender cómo acceder a este y muchos otros ejemplos directamente en Alteryx Designer.
Utiliza la herramienta Análisis JSON para separar el texto JavaScript Object Notation (JSON) en un esquema de tabla para su procesamiento posterior. Puedes utilizar la salida a la herramienta Compilación JSON para reconstruirla en un formato JSON utilizable.
Configurar la herramienta
Campo JSON: selecciona los campos que contienen texto JSON. El campo debe contener JSON válido con todo el texto de un registro en una sola celda. Consulta este ejemplo:
{ "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" } ] }
Entrada en la salida: la columna seleccionada se incluye en el flujo de datos que sale de la herramienta.
Elige cómo se analiza el JSON. Las opciones son:
Emitir valores de salida en un solo campo de cadena
Emitir valores de salida en campos específicos para cada tipo de dato
Anular anidación de campo JSON: esta opción está disponible solo a través de AMP.
Aplanar matriz: esta opción está disponible solo a través de AMP.
Consulta las secciones siguientes a fin de obtener información adicional y ejemplos para cada una de las opciones anteriores.
Esta opción genera 2 campos: JSON_Name
y JSON_ValueString
. Al utilizar el ejemplo de entrada anterior, estos datos salen de la herramienta:
Ejemplo
Entrada 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" } ] }
Salida de la herramienta Análisis JSON
JSON_Name | JSON_ValueString |
---|---|
firstName | John |
lastName | Smith |
age | 25 |
address.streetAddress | 21 2nd Street |
address.city | New York |
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 |
Esta opción genera estos 5 campos:
Nombre del campo | Descripción |
---|---|
| JSON_Name es la “clave” de un objeto JSON (par de clave:valor). Un punto separa la clave y cualquier categoría jerárquica. |
| El "valor" de cadena correspondiente al objeto JSON (par clave:valor). Si el valor no es una cadena, se mostrará como [Null]. |
| El "valor" entero correspondiente al objeto JSON (par clave:valor). Si el valor no es un entero, se mostrará como [Null]. |
| El "valor" flotante correspondiente al objeto JSON (par clave:valor). Si el valor no es flotante, se mostrará como [Null]. |
| El "valor" bool correspondiente al objeto JSON (par clave:valor). Si el valor no es bool, se mostrará como [Null]. |
Ejemplo
Entrada 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" } ] }
Salida de la herramienta Análisis JSON
JSON_Name | JSON_ValueString | JSON_ValueInt | JSON_ValueFloat | JSON_ValueBool |
---|---|---|---|---|
firstName | John | [Null] | [Null] | [Null] |
lastName | Smith | [Null] | [Null] | [Null] |
age | [Null] | 25 | [Null] | [Null] |
address.streetAddress | 21 2nd Street | [Null] | [Null] | [Null] |
address.city | New York | [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] |
Esta opción permite desanidar objetos JSON en columnas. Solo va un nivel más profundo en el objeto JSON.
Aviso
Desanidar campo JSON está disponible solo a través de AMP.
Ejemplo
Entrada JSON
Considera una columna “hours” (horas) en la entrada con estos valores:
{ "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"} }
Salida de la herramienta Análisis JSON
Esta es la salida cuando desanidas la columna “hours” anterior:
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"} |
La desanidación en la columna “hours” muestra las columnas “hours.Tuesday”, “hours.Friday”, “hours.Monday” y así sucesivamente.
“hours.Tuesday” continúa llevando el objeto: {“close”: “17:00”, “open”: “08:00”}. Puedes desanidar esto de nuevo a hours.Tuesday.close y hours.Tuesday.open con otra herramienta de Análisis JSON.
Esta opción es aplicable para las columnas que solo tienen valores de matriz. Te permite expandir una columna de matriz JSON eliminando los corchetes. Crea una fila separada para cada elemento separado por una coma y asigna un ID para cada fila.
Aviso
Aplanar matriz está disponible solo a través de AMP.
Ejemplo
Entrada JSON
Considera esta entrada de matriz entre corchetes donde el nombre de la columna es “hours” y el valor de la columna es una matriz:
[ {"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"} ]
Salida de la herramienta Análisis 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 |