Ferramenta Análise JSON
Fluxo de trabalho de exemplo
A ferramenta Análise JSON tem um fluxo de trabalho de exemplo. Visite Exemplos de fluxos de trabalho para saber como acessar esse e muitos outros exemplos diretamente do Alteryx Designer.
Use a ferramenta Análise JSON para separar o texto JavaScript Object Notation (JSON) em um esquema de tabela para processamento posterior. Você pode alimentar a saída para a ferramenta Construir JSON para converter o texto de volta ao formato JSON.
Configurar a ferramenta
Campo JSON: selecione os campos com texto JSON. A coluna deve conter um JSON válido com todo o texto de um registro em uma única célula. Veja este exemplo:
{ "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" } ] }
Incluir entrada na saída: a coluna selecionada é incluída na saída do fluxo de dados da ferramenta.
Escolha como o JSON é analisado. As opções incluem...
Fazer a saída dos valores em um único campo de cadeia de caracteres
Fazer a saída dos valores em campos específicos para cada tipo de dados
Desaninhar campo JSON: esta opção está disponível apenas via AMP.
Nivelar matriz: esta opção está disponível apenas via AMP.
Consulte as seções abaixo para obter informações adicionais e exemplos para cada uma das opções acima.
Esta opção produz dois campos: JSON_Name
e JSON_ValueString
. Usando o exemplo da entrada acima, os seguintes dados saem da ferramenta:
Exemplo
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" } ] }
Saída da ferramenta Análise 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 | início |
phoneNumber.0.number | 212-555-1234 |
phoneNumber.1.type | fax |
phoneNumber.1.number | 646-555-4567 |
Esta opção produz estes cinco campos:
Nome do campo | Descrição |
---|---|
| JSON_Name é a "chave" de um objeto JSON (par chave-valor). Um ponto separa a chave de quaisquer categorias hierárquicas. |
| O "valor" de cadeia de caracteres correspondente ao objeto JSON (par chave-valor). Se o valor não for uma cadeia de caracteres, ele é exibido como [Null]. |
| O "valor" de número inteiro correspondente ao objeto JSON (par chave-valor). Se o valor não for um número inteiro, ele será exibido como [Null]. |
| O "valor" float correspondente ao objeto JSON (par chave-valor). Se o valor não for um float, ele é exibido como [Null]. |
| O "valor" booleano correspondente ao objeto JSON (par chave-valor). Se o valor não for booleano, ele é exibido como [Null]. |
Exemplo
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" } ] }
Saída da ferramenta Análise 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 | início | [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 opção permite desaninhar objetos JSON em colunas. Vai somente um nível mais profundo no objeto JSON.
Atenção
O campo "Desaninhar campo JSON" está disponível apenas via AMP.
Exemplo
Entrada JSON
Considere uma coluna "hours" na entrada com estes 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"} }
Saída da ferramenta Análise JSON
Esta é a saída quando você desaninha a coluna "hours" acima:
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"} |
Desaninhar na coluna "hours" produz colunas "hours.Tuesday", "hours.Friday", "hours.Monday" e assim por diante.
"hours.Tuesday" continua a carregar o objeto: {"close": "17:00", "open": "08:00"}. Você pode desaninhar isso novamente para "hours.Tuesday.close" e "hours.Tuesday.open" com outra ferramenta Análise JSON.
Esta opção é aplicável apenas a colunas que têm valores de matriz. Ela permite expandir uma coluna de matriz JSON removendo os colchetes. Cria uma linha separada para cada elemento separado por uma vírgula e atribui um ID a cada linha.
Atenção
"Nivelar matriz" está disponível apenas via AMP.
Exemplo
Entrada JSON
Considere esta entrada de matriz entre colchetes onde o nome da coluna é "horas" e o valor da coluna é uma 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"} ]
Saída da ferramenta Análise 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 |