Condividi tramite


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. Come XPath, JSONPath consente l'estrazione e la filtraggio dei dati dalla struttura JSON.

Usare JSONPath

In questo esempio l'oggetto JSON rappresenta l'inventario di un archivio. Creeremo una tabella dei libri disponibili del negozio che elencano i loro titoli, autori e prezzi.

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

  2. Usare il collegamento Aggiungi>query per aggiungere un controllo 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 Result Impostazioni (Risultato) e impostare il formato del risultato su JSON Path (Percorso JSON).

  6. Applicare le impostazioni del percorso JSON seguenti:

    • Tabella percorso 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 Percorsi JSON delle colonne
      Title $.title
      Autore $.author
      Price $.price

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

  7. Selezionare Esegui query.

    Screenshot that shows editing a query item with JSON data source and JSON path result format.

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 giustificati a destra, anziché come data.

È possibile utilizzare i campi Type, RegEx Match e Replace With nelle impostazioni dei risultati per convertire il risultato in date vere.

Campo impostazione dei risultati Descrizione
Tipo Consente di modificare in modo esplicito il tipo del 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 Pubblicata nella griglia.

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

  3. Nel campo Regex Match (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 Replace With 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 that shows JSONpath converted to date-time format.

Passaggi successivi