Przekształcanie danych JSONSON w skoroszytach przy użyciu ścieżki JSONPath
Skoroszyty mogą wykonywać zapytania dotyczące danych z wielu źródeł. Niektóre punkty końcowe, takie jak usługa Azure Resource Manager lub niestandardowe punkty końcowe, mogą zwracać wyniki w formacie JSON. Jeśli dane JSON zwrócone przez zapytany punkt końcowy są w formacie, którego nie chcesz, możesz użyć przekształcenia JSONPath, aby przekonwertować kod JSON na strukturę tabeli. Następnie możesz użyć tabeli do wykreślenia wizualizacji skoroszytu.
JSONPath to język zapytań dla formatu JSON podobny do XPath dla kodu XML. Podobnie jak XPath, JSONPath umożliwia wyodrębnianie i filtrowanie danych ze struktury JSON.
Korzystanie ze ścieżki JSONPath
W tym przykładzie obiekt JSON reprezentuje spis magazynu. Utworzymy tabelę dostępnych książek sklepu z tytułami, autorami i cenami.
Przełącz skoroszyt do trybu edycji, wybierając pozycję Edytuj.
Użyj linku Dodaj>zapytanie, aby dodać kontrolkę zapytania do skoroszytu.
Wybierz źródło danych w formacie JSON.
Użyj edytora JSON, aby wprowadzić następujący fragment kodu 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 } } }
Wybierz kartę Ustawienia wyników i przełącz format wyniku na ścieżkę JSON.
Zastosuj następujące ustawienia ścieżki JSON:
Tabela ścieżek JSON:
$.store.books
. To pole reprezentuje ścieżkę katalogu głównego tabeli. W tym przypadku zależy nam na spisie książek sklepu. Ścieżka tabeli filtruje dane JSON do informacji o książce.Identyfikatory kolumn Ścieżki JSON kolumn Tytuł $.title
Autor $.author
Cena $.price
Identyfikatory kolumn to nagłówki kolumn. Pola ścieżek JSON kolumn reprezentują ścieżkę z katalogu głównego tabeli do wartości kolumny.
Wybierz pozycję Uruchom zapytanie.
Konwertowanie wartości przy użyciu wyrażeń regularnych
Niektóre dane mogą nie być w standardowym formacie. Aby efektywnie korzystać z tych danych, należy przekonwertować te dane na standardowy format.
W tym przykładzie data publikacji jest w formacie RRRRMMDD. Kod interpretuje tę wartość jako wartość liczbową, a nie tekst, co powoduje, że liczby uzasadnione prawem, a nie jako data.
Aby przekonwertować wynik na prawdziwe daty, możesz użyć pól Type, RegEx Match and Replace With w ustawieniach wyników.
Pole ustawienia wyników | opis |
---|---|
Type | Umożliwia jawną zmianę typu wartości zwracanej przez interfejs API. To pole zwykle pozostawiliśmy niezastawione, ale możesz użyć tego pola, aby wymusić użycie wartości do innego typu. |
Dopasowanie wyrażeń regularnych | Umożliwia wprowadzenie wyrażenia regularnego do udziału (lub części) wartości zwracanej przez interfejs API zamiast całej wartości. To pole jest zwykle łączone z polem Zamień na. |
Zamień na | Użyj tego pola, aby utworzyć nową wartość wraz z wyrażeniem regularnym. Jeśli ta wartość jest pusta, wartość domyślna to $& , czyli wynik dopasowania wyrażenia. Zobacz dokumentację string.replace, aby wyświetlić inne wartości, których można użyć do generowania innych danych wyjściowych. |
Aby przekonwertować format RRRRMDD na format RRRR-MM-DD:
Wybierz wiersz Opublikowany w siatce.
W polu Typ wybierz pozycję Data/godzina, aby kolumna mogła być użyteczna na wykresach.
W polu Dopasowanie wyrażeń regularnych użyj następującego wyrażenia regularnego:
([0-9]{4})([0-9]{2})([0-9]{2})
. To wyrażenie regularne:- dopasuje czterocyfrową liczbę, a następnie dwie cyfry, a następnie kolejną dwie cyfry.
- Nawiasy tworzą grupy przechwytywania do użycia w następnym kroku.
W zamian za pomocą tego wyrażenia regularnego użyj następującego wyrażenia regularnego:
$1-$2-$3
. To wyrażenie tworzy nowy ciąg z każdą przechwyconą grupą z łącznikiem między nimi, zamieniając wyrazy "12345678" na "1234-56-78").Uruchom ponownie zapytanie.