JSONPath Tester
Jalankan query JSONPath terhadap dokumen JSON apa pun. Lihat node yang cocok dan path-nya secara real-time.
Masukkan input di atas untuk melihat hasilnya.
Dibuat oleh JXXR1 · ♥ Jadi sponsor · ☕ Belikan saya kopi
Untuk apa ini?
JSONPath bagi JSON itu seperti XPath bagi XML — sebuah query language untuk mengambil value spesifik dari dokumen bersarang tanpa menulis kode custom. $.store.books[*].title berkata "berikan setiap judul buku di bawah store"; $..price berkata "setiap price di mana pun di dokumen". Tool ini menjalankan query secara live terhadap JSON apa pun yang kamu paste, menampilkan baik value yang matched maupun path asalnya, jadi kamu bisa iterasi query sampai mengembalikan persis yang kamu mau.
Kapan digunakan
- Menyusun query untuk tool yang menggunakan JSONPath: CLI utility ala jq, test Postman, Stedi, n8n, atau AWS CloudWatch / Step Functions.
- Mengekstrak field spesifik dari response API besar tanpa menulis script.
- Memfilter array berdasarkan nilai field (mis. "semua order dengan total > 100").
- Sanity check bahwa path bersarang dalam benar-benar resolve ke value sebelum kamu menanamkannya di kode.
Referensi syntax cepat
$— root dokumen..nameatau['name']— child berdasarkan nama...— recursive descent (kedalaman apa pun).*— wildcard (property atau element array apa pun).[n]— index array (negatif menghitung dari belakang).[start:end:step]— slice array (gaya Python).[a, b, c]— union dari index atau nama.[?(@.field > 5)]— ekspresi filter.@= item saat ini; mendukung== != < > <= >= && ||dan=~ /regex/.
Kesalahan umum
- JSONPath tidak punya satu spec resmi. Draft asli Stefan Gössner sudah jadi referensi de facto selama bertahun-tahun; RFC 9535 (Feb 2024) akhirnya menstandarisasinya. Implementasi sedikit berbeda — yang jalan di Postman belum tentu jalan di Jaeger.
- Dot vs bracket.
$.foo-barterlihat seperti "foo minus bar" bagi parser; gunakan$['foo-bar']untuk nama property dengan hyphen, dot, atau spasi. - Ekspresi filter di sini ber-flavor JavaScript — itu kenyamanan yang disengaja tapi tidak persis cocok dengan RFC 9535. Jangan andalkan filter tool ini bekerja byte-identik di implementasi lain.
$..*mengembalikan setiap node di tree (depth-first), yang bisa sangat banyak. Berguna untuk mengeksplorasi dokumen yang belum dikenal.- String key numerik.
{"1": "a"}— akses dengan$['1']bekerja;$.1tidak (angka bukan nama dot-property yang valid). - Ordering. Urutan property object tidak dijamin oleh JSON. Kalau filtermu bergantung pada urutan, sort dulu.