Menggunakan JSONPath untuk mengubah data JSON dalam buku kerja

Buku kerja bisa mengkueri data dari banyak sumber. Beberapa titik akhir, seperti Azure Resource Manager atau titik akhir kustom dapat mengembalikan hasil di JSON. Jika data JSON yang dikembalikan oleh titik akhir yang dikueri berada dalam format yang tidak Anda inginkan, Anda dapat menggunakan transformasi JSONPath untuk mengonversi JSON ke struktur tabel. Anda kemudian dapat menggunakan tabel untuk memplot visualisasi buku kerja.

JSONPath adalah bahasa kueri untuk JSON yang mirip dengan XPath untuk XML. Seperti XPath, JSONPath memungkinkan ekstraksi dan filtrasi data dari struktur JSON.

Menggunakan JSONPath

Dalam contoh ini, objek JSON mewakili inventaris toko. Kita akan membuat tabel buku toko yang tersedia yang mencantumkan judul, penulis, dan harga mereka.

  1. Alihkan buku kerja ke mode edit dengan memilih Edit.

  2. Gunakan tautan Tambahkan>Tambahkan kueri untuk menambahkan kontrol kueri ke buku catatan kerja.

  3. Pilih tipe sumber data sebagai JSON.

  4. Gunakan editor JSON untuk memasukkan cuplikan JSON berikut:

    { "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. Pilih tab Pengaturan Hasil dan alihkan format hasil ke JSON Path.

  6. Terapkan pengaturan jalur JSON berikut:

    • Tabel Jalur JSON: $.store.books. Bidang ini mewakili jalur akar tabel. Dalam hal ini, kita memperhatikan inventaris buku di toko. Jalur tabel memfilter JSON ke informasi buku.

      ID Kolom Jalur JSON kolom
      Judul $.title
      Penulis $.author
      Harga $.price

    ID kolom adalah header kolom. Bidang jalur JSON kolom mewakili jalur dari akar tabel ke nilai kolom.

  7. Pilih Jalankan Kueri.

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

Menggunakan ekspresi reguler untuk mengonversi nilai

Anda mungkin memiliki beberapa data yang tidak dalam format standar. Untuk menggunakan data tersebut secara efektif, Anda ingin mengonversi data tersebut menjadi format standar.

Dalam contoh ini, tanggal yang diterbitkan dalam format YYYMMMDD. Kode menafsirkan nilai ini sebagai nilai numerik, bukan teks, menghasilkan angka yang dibenarkan kanan, bukan sebagai tanggal.

Anda dapat menggunakan bidang Jenis, Pencocokan RegEx, dan Ganti Dengan di pengaturan hasil untuk mengonversi hasilnya menjadi tanggal benar.

Bidang pengaturan hasil Deskripsi
Jenis Memungkinkan Anda untuk secara eksplisit mengubah jenis nilai yang dikembalikan oleh API. Bidang ini biasanya dibiarkan tidak diatur, tetapi Anda dapat menggunakan bidang ini untuk memaksa nilai ke jenis yang berbeda.
Kecocokan Regex Memungkinkan Anda memasukkan ekspresi reguler untuk mengambil bagian (atau bagian) dari nilai yang dikembalikan oleh API alih-alih seluruh nilai. Bidang ini biasanya dikombinasikan dengan bidang Ganti Dengan .
Ganti Dengan Gunakan bidang ini untuk membuat nilai baru bersama dengan ekspresi reguler. Jika nilai ini kosong, defaultnya adalah $&, yang merupakan hasil kecocokan ekspresi. Lihat dokumentasi string.replace untuk melihat nilai lain yang dapat Anda gunakan untuk menghasilkan output lain.

Untuk mengonversi format YYYMMDD menjadi format YYYY-MM-DD:

  1. Pilih baris Diterbitkan di kisi.

  2. Di bidang Jenis, pilih Tanggal/Waktu sehingga kolom dapat digunakan dalam bagan.

  3. Di bidang Regex Match, gunakan ekspresi reguler ini: ([0-9]{4})([0-9]{2})([0-9]{2}). Ekspresi reguler ini:

    • cocok dengan angka empat digit, lalu angka dua digit, lalu angka dua digit lainnya.
    • Grup pengambilan formulir tanda kurung untuk digunakan di langkah berikutnya.
  4. Di Ganti Dengan, gunakan ekspresi reguler ini: $1-$2-$3. Ekspresi ini membuat string baru dengan setiap grup yang diambil, dengan tanda hubung di antaranya, mengubah "12345678" menjadi "1234-56-78").

  5. Jalankan kueri lagi.

    Screenshot that shows JSONpath converted to date-time format.

Langkah berikutnya