Usar JSONPath para transformar dados JSON em pastas de trabalho

As pastas de trabalho são capazes de consultar dados de várias fontes. Alguns pontos de extremidade, como o Azure Resource Manager ou pontos de extremidades personalizados, podem retornar resultados em JSON. Se os dados JSON retornados pelo ponto de extremidade consultado estiverem em um formato que você não deseja, você poderá usar a transformação JSONPath para converter o JSON em uma estrutura de tabela. Você pode usar a tabela para plotar as visualizações da pasta de trabalho.

O JSONPath é uma linguagem de consulta para JSON semelhante ao XPath para XML. Como o XPath, o JSONPath permite a extração e a filtragem de dados da estrutura JSON.

Usar o JSONPath

Neste exemplo, o objeto JSON representa o inventário de um repositório. Criaremos uma tabela dos livros disponíveis do repositório listando os títulos, autores e preços.

  1. Alterne a pasta de trabalho para o modo de edição selecionando Editar.

  2. Use o link Adicionar>Adicionar consulta para adicionar à pasta de trabalho um controle de consulta.

  3. Selecione a fonte de dados como JSON.

  4. Use o editor de JSON para inserir o seguinte snippet JSON:

    { "store": {
        "books": [ 
          { "category": "reference",
            "author": "Nigel Rees",
            "title": "Sayings of the Century",
            "price": 8.95
          },
          { "category": "fiction",
            "author": "Evelyn Waugh",
            "title": "Sword of Honour",
            "price": 12.99
          },
          { "category": "fiction",
            "author": "Herman Melville",
            "title": "Moby Dick",
            "isbn": "0-553-21311-3",
            "price": 8.99
          },
          { "category": "fiction",
            "author": "J. R. R. Tolkien",
            "title": "The Lord of the Rings",
            "isbn": "0-395-19395-8",
            "price": 22.99
          }
        ],
        "bicycle": {
          "color": "red",
          "price": 19.95
        }
      }
    }
    
  5. Selecione a guia Configurações de resultado e mude o formato de resultado para Caminho JSON.

  6. Aplique as seguintes configurações de caminho JSON:

    • Tabela de caminho JSON: $.store.books. Este campo representa o caminho da raiz da tabela. Nesse caso, a preocupação é com o estoque de livros da loja. O caminho da tabela filtra o JSON para as informações do livro.

      IDs de coluna Caminhos JSON da coluna
      Título $.title
      Autor $.author
      Preço $.price

    As IDs de coluna serão os cabeçalhos de coluna. Campos de caminhos JSON de coluna representam o caminho da raiz da tabela para o valor da coluna.

  7. Selecione Executar Consulta.

    Captura de tela mostrando a edição de um item de consulta com fonte de dados JSON e formato de resultado de caminho JSON.

Usar expressões regulares para converter valores

Você pode ter alguns dados que não estão em um formato padrão. Para usar esses dados com eficiência, converta esses dados em um formato padrão.

Neste exemplo, a data publicada está no formato YYYMMMDD. O código interpreta esse valor como valor numérico, não texto, resultando em números justificados à direita, em vez de como data.

Você pode usar os campos Tipo, RegEx Match e Substituir por nas configurações de resultado para converter o resultado em datas verdadeiras.

Campo de configuração de resultado Descrição
Type Permite alterar explicitamente o tipo do valor retornado pela API. Normalmente, esse campo é deixado sem definição, mas você pode usar esse campo para forçar o valor a um tipo diferente.
Regex Match Permite que você insira uma expressão regular para pegar uma parte (ou partes) do valor retornado pela API em vez do valor inteiro. Esse campo geralmente é combinado com o campo Substituir por.
Substitua por Use esse campo para criar o novo valor junto com a expressão regular. Se esse valor estiver vazio, o padrão será $&, que é o resultado correspondente da expressão. Consulte a documentação sobre string.replace para ver outros valores que você pode usar para gerar outra saída.

Para converter o formato YYYMMDD em formato AAAA-MM-DD:

  1. Selecione a linha Publicado na grade.

  2. No campo Tipo, selecione Data/Hora para que a coluna possa ser utilizável em gráficos.

  3. No campo Regex Match, use esta expressão regular: ([0-9]{4})([0-9]{2})([0-9]{2}). Esta expressão regular:

    • corresponde a um número de quatro dígitos, em seguida, um número de dois dígitos e, em seguida, outro número de dois dígitos.
    • Os parênteses formam grupos de captura a serem usados na próxima etapa.
  4. Em Substituir por, use esta expressão regular: $1-$2-$3. Essa expressão cria uma nova cadeia de caracteres com cada grupo capturado, com um hífen entre eles, transformando "12345678" em "1234-56-78").

  5. Execute a consulta novamente.

    Captura de tela que mostra o JSONpath convertido em formato de data e hora.

Próximas etapas