JSON Path Tester
Masukkan dokumen JSON dan ketik ekspresi JSONPath seperti $..book[?(@.price<10)]. Alat pengujian akan mengevaluasi ekspresi tersebut terhadap dokumen dan menampilkan semua nilai yang cocok beserta jalur lengkapnya. Fitur ini sangat berguna untuk memvalidasi kueri yang akan Anda tempelkan ke dalam skrip atau spesifikasi API (Postman, k6, dan JMeter semuanya mendukung JSONPath).
Cara menguji ekspresi JSONPath
-
1
Lampirkan dokumen JSON
Semua format JSON yang valid, objek, array, maupun struktur yang bersarang secara mendalam.
-
2
Masukkan ekspresi
Mulailah dengan `$` untuk akar; gunakan `.` untuk anak, `..` untuk turunan rekursif, dan `[*]` untuk wildcard.
-
3
Lihat kecocokan secara langsung
Setiap kecocokan ditampilkan dengan nilai dan JSONPath lengkapnya, yang disorot dalam dokumen asli.
-
4
Salin hasilnya
Salin hasil pencocokan sebagai array JSON, atau salin setiap jalur secara terpisah untuk digunakan dalam kode selanjutnya.
Referensi sintaks JSONPath
| Ekspresi | Makna |
|---|---|
$ |
Elemen akar |
$.store |
Anak dari $ yang bernama store |
$["store"] |
Sama, berbentuk braket |
$..author |
Semua properti author pada kedalaman apa pun |
$.store.book[*] |
Semua buku di toko |
$.store.book[0] |
Buku pertama |
$.store.book[-1:] |
Buku terakhir |
$.store.book[0:2] |
Dua buku pertama (bagian) |
$.store.book[?(@.isbn)] |
Buku dengan properti isbn |
$.store.book[?(@.price < 10)] |
Buku dengan harga di bawah 10 |
$.store.book[?(@.category == "fiction")] |
Buku fiksi |
$..* |
Setiap nilai, di mana pun |
Ekspresi Filter
Ekspresi filter menggunakan @ untuk merujuk pada node saat ini. Alat pengujian mendukung operator umum ==, !=, <, >, <=, >=, &&, ||, serta ekspresi regular =~.
$.items[?(@.qty >= 10 && @.price < 50)]
Dialek JSONPath
Terdapat beberapa implementasi JSONPath yang memiliki sedikit ketidaksesuaian. Alat pengujian ini mengikuti spesifikasi asli Goessner serta penyempurnaan dari RFC 9535, dan kompatibel dengan:
- JaywayJsonPath (Java)
- jsonpath-plus (JavaScript)
- jsonpath-rw (Python)
- Ekspresi jalur dasar jq
Fitur-fitur yang tidak kompatibel (seperti ekspresi skrip yang menggunakan kode JS sembarang) akan ditandai di panel kesalahan.
Ketika JSONPath unggul dibandingkan parser lengkap
- Asersi pengujian:
pm.expect(jsonData).to.have.jsonPath(...)dari Postman menerima sebuah jalur (path). - Ekstraksi konfigurasi: mengekstrak satu nilai dari respons API yang sangat besar tanpa menggunakan pustaka khusus.
- Skrip pengujian beban: k6, JMeter, dan Gatling semuanya mendukung JSONPath untuk pemeriksaan.
- Kubernetes / AWS CLI: Flag
--querydan--jsonpathmemungkinkan Anda mengatur format keluaran dari baris perintah.
Kesalahan Umum
- Menggunakan
.pada sebuah array.$.users.0.nametidak benar; gunakan$.users[0].name. - Lupa menggunakan
..untuk kedalaman. Jalur seperti$.namehanya cocok dengannamepada tingkat tertinggi; gunakan$..nameuntuk semua kasus. - Menyamakan JSONPath dengan jq secara keliru. jq merupakan himpunan yang lebih luas dibandingkan JSONPath, karena mencakup mekanisme alur kontrol dan transformasi; sedangkan JSONPath khusus digunakan untuk ekstraksi data saja.
- Penambatan (anchoring) dengan Regex.
=~ /foo/cocok dengan substring; gunakan/^foo$/untuk pencocokan yang akurat.
Pertanyaan yang Sering Diajukan
JSONPath merupakan bahasa ekstraksi murni yang menyediakan fungsi seleksi, penyaringan, dan pemotongan data. Sementara itu, jq adalah bahasa kueri dan transformasi lengkap yang mencakup alur kontrol, variabel, serta fungsi kompleks. Untuk ekstraksi sederhana, JSONPath lebih portabel; sedangkan untuk transformasi data, gunakan jq.
Spesifikasi asli Goessner ditambah penyempurnaan berdasarkan RFC 9535, yang kompatibel dengan JaywayJsonPath (Java) dan jsonpath-plus (Node). Ekstensi khusus dialek (ekspresi skrip yang mengandung kode sembarang) tidak didukung.
Ya. $..book[?(@.title =~ /^Harry.*/)] cocok untuk semua buku yang judulnya dimulai dengan “Harry”. Gunakan ^ dan $ untuk pencocokan lengkap.
Ya. Baik JSON maupun mesin evaluasi JSONPath berada di dalam peramban Anda. Dokumen dan kueri Anda tidak pernah keluar dari tab tersebut.
Alat Terkait
Referensi Tabel ASCII
Tabel ASCII lengkap dari 0 sampai 127 dengan desimal, heksadesimal, oktal, biner, dan referensi karakter numerik HTML untuk setiap karakter, termasuk kode kontrol seperti NUL, LF, dan DEL.
Referensi Karakter HTML
Daftar entitas HTML yang dapat dicari, beserta kode bernama dan kode numeriknya, serta fitur salin dengan satu klik untuk karakter khusus dan simbol.
Referensi pintasan papan ketik
Cari pintasan bawaan terdokumentasi untuk VS Code, Chrome, dan Bash dengan GNU Readline di macOS, Windows, dan Linux.
Pemformat HTML
Format HTML secara lokal di browser dengan inden dua atau empat spasi. HTML tidak diunggah atau divalidasi.
Generator EditorConfig
Buat file .editorconfig dengan gaya dan ukuran indentasi, akhir baris, charset, dan aturan spasi Anda untuk format yang konsisten di berbagai IDE dan editor.
Validator Email
Validasi alamat email: pemeriksaan sintaks RFC 5322, pengecekan live record MX, serta detail bagian lokal, domain, dan panjang. Tidak ada email yang dikirim.
Alat ini tersedia dalam bahasa lain
- Công cụ kiểm thử JSONPath [VI]
- Probador de JSONPath [ES]
- Testador de JSONPath [PT]
- JSONPath-testare [SV]
- أداة اختبار مسارات JSON (JSONPath) [AR]
- JSONPath テスター [JA]
- เครื่องมือทดสอบ JSON Path [TH]
- JSONPath-Tester [DE]
- JSONPath 테스터 [KO]
- JSON Path Tester [NL]
- Testeur JSONPath [FR]
- Tester JSONPath [PL]
- JSON路径测试器 [ZH]
- JSONPath Tester [EN]
- Tester JSONPath [IT]
- JSONPath Tester [RU]
- JSONPath Test Aracı [TR]