Apa fungsinya
JSONPath adalah bahasa kueri untuk JSON, mirip XPath untuk XML. Kueri seperti $.store.book[*].title menelusuri dokumen dan memilih nilai yang Anda perlukan. Evaluator ini menjalankan ekspresi JSONPath pada JSON yang Anda tempel dan menampilkan setiap kecocokan sebagai array JSON: nilai yang ditemukan, path ternormalisasinya (misalnya $['store']['book'][0]['title']), atau keduanya.
Alat ini mengikuti RFC 9535, standar IETF yang terbit tahun 2024, sehingga hasilnya sama dengan pustaka modern di JavaScript, Java, Python, Go, dan bahasa lain. Gunakan untuk mencoba kueri sebelum dimasukkan ke kode, mencari tahu mengapa filter tidak mengembalikan apa pun, atau mengambil beberapa field dari respons API yang besar.
Cara menggunakan
- Tempel JSON ke kotak JSON, unggah file
.json, atau klik Contoh untuk memuat dokumen toko buku klasik. - Ketik kueri di Ekspresi JSONPath. Hasil yang cocok diperbarui saat Anda mengetik.
- Pilih yang ingin Tampilkan: nilai, path, atau pasangan path/nilai.
- Salin atau unduh hasilnya. Jika kueri salah sintaks, karakter tempat penguraian gagal akan ditunjukkan.
Ringkasan sintaks
| Ekspresi | Arti |
|---|---|
$ | Akar dokumen |
.name atau ['name'] | Anggota sebuah objek |
[0], [-1] | Elemen array (negatif dihitung dari akhir) |
[1:3], [::2] | Slice: awal, akhir (tidak termasuk), dan langkah |
* | Semua anggota atau elemen |
..name | name di kedalaman mana pun |
[?@.price < 10] | Anak yang membuat filter bernilai benar; @ adalah item saat ini |
Filter dapat menggabungkan kondisi dengan &&, ||, dan !, membandingkan dengan bagian lain dokumen lewat $, dan memanggil fungsi: length(@.tags) > 2, count(@.items[*]) == 0, match(@.code, '[A-Z]{3}') agar seluruh string cocok dengan ekspresi reguler, dan search(@.title, 'Ring') untuk kecocokan di mana saja.
Contoh
Dengan data toko buku contoh, kueri ini memilih judul buku yang harganya di bawah 10:
$.store.book[?@.price < 10].title
dan mengembalikan:
["Sayings of the Century", "Moby Dick"]
Ubah menjadi $..book[?@.isbn].author untuk menampilkan penulis buku yang memiliki ISBN, atau $..price untuk mengumpulkan semua harga di toko, termasuk harga sepeda.
FAQ
› Sintaks JSONPath apa yang didukung?
Sintaks standar RFC 9535: nama anggota dengan titik dan kurung siku, wildcard, indeks array (termasuk negatif), slice, pencarian di semua kedalaman dengan .., filter dengan perbandingan dan && || !, serta fungsi length(), count(), match(), search(), dan value(). Gaya lama ?(@.price < 10) juga berfungsi karena tanda kurung hanya untuk pengelompokan.
› Mengapa kueri saya mengembalikan array kosong?
Array kosong berarti kueri valid tetapi tidak ada yang cocok. Periksa nama anggota (peka huruf besar/kecil) dan apakah suatu nilai berupa array atau objek. Jalankan kueri luas seperti $..* dengan Tampilkan diatur ke Path untuk melihat isi dokumen.
› Bisakah saya memakai ekspresi skrip seperti [(@.length-1)]?
Tidak. Ekspresi skrip menjalankan kode sembarang dan bukan bagian dari standar. Gunakan indeks negatif: [-1] adalah elemen terakhir dan [-2:] dua elemen terakhir.
› Apakah JSON saya dikirim ke server?
Tidak. Kueri diurai dan dievaluasi di browser Anda oleh kode halaman itu sendiri; tidak ada yang diunggah.