Transformace dat JSON v sešitech pomocí JSONPathu

Sešity se můžou dotazovat na data z mnoha zdrojů. Některé koncové body, jako je Azure Resource Manager nebo vlastní koncové body, můžou vracet výsledky ve formátu JSON. Pokud jsou data JSON vrácená dotazovaným koncovým bodem ve formátu, který nechcete, můžete pomocí transformace JSONPath převést JSON na strukturu tabulky. Tabulku pak můžete použít k vykreslení vizualizací sešitů.

JSONPath je dotazovací jazyk pro JSON, který se podobá XPathu pro XML. Podobně jako XPath umožňuje JSONPath extrakci a filtraci dat ze struktury JSON.

Použití JSONPathu

V tomto příkladu objekt JSON představuje inventář úložiště. Vytvoříme tabulku dostupných knih z obchodu se seznamem jejich titulů, autorů a cen.

  1. Výběrem možnosti Upravit přepněte sešit do režimu úprav.

  2. Pomocí odkazu Přidat>dotaz přidejte do sešitu ovládací prvek dotazu.

  3. Vyberte zdroj dat jako JSON.

  4. Pomocí editoru JSON zadejte následující fragment kódu 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. Vyberte kartu Výsledek Nastavení a přepněte formát výsledku na cestu JSON.

  6. Použijte následující nastavení cesty JSON:

    • Tabulka cest JSON: $.store.books. Toto pole představuje cestu kořene tabulky. V tomto případě se staráme o skladové zásoby obchodů. Cesta k tabulce filtruje JSON na informace o knize.

      ID sloupců Cesty JSON sloupce
      Nadpis $.title
      Vytvořit $.author
      Cena $.price

    ID sloupců jsou záhlaví sloupců. Pole cest JSON sloupce představují cestu z kořenového adresáře tabulky do hodnoty sloupce.

  7. Vyberte Spustit dotaz.

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

Převod hodnot pomocí regulárních výrazů

Možná máte nějaká data, která nejsou ve standardním formátu. Pokud chcete tato data efektivně používat, měli byste tato data převést do standardního formátu.

V tomto příkladu je publikované datum ve formátu RRRRMMDD. Kód interpretuje tuto hodnotu jako číselnou hodnotu, nikoli jako text, což vede k zamyšlovacím číslům, nikoli jako kalendářním datům.

Pomocí polí Type, RegEx Match a Replace With v nastavení výsledku můžete výsledek převést na pravdivá kalendářní data.

Pole nastavení výsledku Popis
Typ Umožňuje explicitně změnit typ hodnoty vrácené rozhraním API. Toto pole obvykle ponecháme bez nastavení, ale toto pole můžete použít k vynucení hodnoty na jiný typ.
Shoda regulárních výrazů Umožňuje zadat regulární výraz, který bude obsahovat část (nebo části) hodnoty vrácené rozhraním API místo celé hodnoty. Toto pole se obvykle kombinuje s polem Nahradit za.
Nahradit hodnotou Toto pole použijte k vytvoření nové hodnoty spolu s regulárním výrazem. Pokud je tato hodnota prázdná, výchozí hodnota je $&, což je výsledek shody výrazu. Další hodnoty, které můžete použít k vygenerování jiného výstupu, najdete v dokumentaci string.replace.

Převod formátu RRRRMMDD na formát RRRR-MM-DD:

  1. Vyberte řádek Publikováno v mřížce.

  2. V poli Typ vyberte datum a čas, aby byl sloupec použitelný v grafech.

  3. V poli Shoda regulárních výrazů použijte tento regulární výraz: ([0-9]{4})([0-9]{2})([0-9]{2}). Tento regulární výraz:

    • odpovídá čtyřmístnému číslu, pak dvoucifernému číslu a dalšímu dvěma číslicemi.
    • Závorky tvoří skupiny zachycení, které se mají použít v dalším kroku.
  4. V příkazu Nahradit čím použijte tento regulární výraz: $1-$2-$3. Tento výraz vytvoří nový řetězec s každou zachycenou skupinou s pomlčkou mezi nimi a změní "12345678" na "1234-56-78").

  5. Spusťte dotaz znovu.

    Screenshot that shows JSONpath converted to date-time format.

Další kroky