Usare JSONPath per trasformare i dati JSON nelle cartelle di lavoro

Le cartelle di lavoro possono eseguire query sui dati da molte origini. Alcuni endpoint, ad esempio Azure Resource Manager o endpoint personalizzati, possono restituire risultati in JSON. Se i dati JSON restituiti dall'endpoint sottoposto a query sono in un formato non desiderato, è possibile usare la trasformazione JSONPath per convertire il codice JSON in una struttura di tabella. È quindi possibile usare la tabella per tracciare le visualizzazioni della cartella di lavoro.

JSONPath è un linguaggio di query per JSON simile a XPath per XML. Analogamente a XPath, JSONPath consente l'estrazione e il filtraggio dei dati dalla struttura JSON.

Usare JSONPath

In questo esempio l'oggetto JSON rappresenta l'inventario dell'archivio. Creeremo una tabella dei libri disponibili del negozio che ne elenca titoli, autori e prezzi.

  1. Passare alla modalità di modifica della cartella di lavoro selezionando Modifica.

  2. Usare il collegamento Aggiungi>Aggiungi query per aggiungere un comando query alla cartella di lavoro.

  3. Selezionare l'origine dati come JSON.

  4. Usare l'editor JSON per immettere il frammento JSON seguente:

    { "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. Selezionare la scheda Impostazioni risultato e impostare il formato dei risultati su Percorso JSON.

  6. Applicare le impostazioni del percorso JSON seguenti:

    • Tabella Percorsi JSON: $.store.books. Questo campo rappresenta il percorso della radice della tabella. In questo caso, ci interessa l'inventario dei libri del negozio. Il percorso della tabella filtra il codice JSON in base alle informazioni del libro.

      ID colonna Colonna percorsi JSON
      Title $.title
      Autore $.author
      Price $.price

    Gli ID colonna sono le intestazioni delle colonne. I campi della colonna percorsi JSON rappresentano il percorso dalla radice della tabella al valore della colonna.

  7. Selezionare Esegui query.

    Screenshot che mostra la modifica di un elemento di query con l'origine dati JSON e il formato dei risultati del percorso JSON.

Usare espressioni regolari per convertire i valori

Potrebbero essere presenti alcuni dati che non sono in un formato standard. Per usare i dati in modo efficace, è consigliabile convertire tali dati in un formato standard.

In questo esempio la data pubblicata è in formato AAAAMMGG. Il codice interpreta questo valore come valore numerico, non come testo, generando numeri allineati a destra, anziché come data.

È possibile utilizzare i campi Tipo, Corrispondenza regex e Sostituisci con nelle impostazioni dei risultati per convertire il risultato in date reali.

Campo impostazione dei risultati Descrizione
Tipo Consente di modificare in modo esplicito il tipo di valore restituito dall'API. Questo campo viene in genere lasciato non impostato, ma è possibile usare questo campo per forzare il valore in un tipo diverso.
Regex Match (Corrispondenza Regex) Consente di immettere un'espressione regolare per prendere parte (o parti) del valore restituito dall'API invece dell'intero valore. Questo campo viene in genere combinato con il campo Sostituisci con.
Sostituire con Usare questo campo per creare il nuovo valore insieme all'espressione regolare. Se questo valore è vuoto, il valore predefinito è $&, ovvero il risultato della corrispondenza dell'espressione. Vedere la documentazione string.replace per visualizzare altri valori che è possibile usare per generare altri output.

Per convertire il formato AAAAMMGG in formato AAAA-MM-GG:

  1. Selezionare la riga Pubblicato nella griglia.

  2. Nel campo Tipo selezionare Data/Ora in modo che la colonna sia utilizzabile nei grafici.

  3. Nel campo Corrispondenza regex usare questa espressione regolare: ([0-9]{4})([0-9]{2})([0-9]{2}). Questa espressione regolare:

    • corrisponde a un numero a quattro cifre, quindi un numero a due cifre, quindi un altro numero a due cifre.
    • Le parentesi formano gruppi di acquisizione da usare nel passaggio successivo.
  4. In Sostituisci con usare questa espressione regolare: $1-$2-$3. Questa espressione crea una nuova stringa con ogni gruppo acquisito, con un trattino tra di essi, trasformando "12345678" in "1234-56-78").

  5. Eseguire nuovamente la query.

    Screenshot che mostra JSONpath convertito in formato data/ora.

Passaggi successivi