JSONPath adalah bahasa ekspresi jalur yang digunakan untuk mengekstrak data tertentu dari dokumen JSON, mirip dengan peran XPath terhadap XML. Dalam pengembangan dan pengujian API, JSON yang dikembalikan antarmuka seringkali memiliki tingkat kedalaman dan bertingkat banyak, perluasan manual tingkat demi tingkat untuk mencari bidang memiliki efisiensi rendah dan mudah salah. Menggunakan JSONPath dapat secara tepat menentukan lokasi dan mengekstrak data target hanya dengan satu baris ekspresi, merupakan alat penting bagi pengembang dalam situasi debug antarmuka, pengujian otomatis, dan ekstraksi data.
Ide desain inti JSONPath adalah menggunakan simbol jalur untuk menggambarkan lokasi data: $ menunjukkan node root (seluruh objek JSON), titik . atau kurung siku [] mengakses properti anak, [n] mengakses elemen array berdasarkan indeks, [*] mencocokkan semua elemen, [start:end] mengiris segmen array, ?() memfilter elemen array berdasarkan syarat. Kumpulan sintaks ini ringkas namun ekspresif, dapat memenuhi sebagian besar kebutuhan ekstraksi data.
Penyaringan bersyarat adalah salah satu fitur JSONPath yang paling praktis, menggunakan bentuk ?(@.bidang operator nilai) untuk menyatakan logika filter, misalnya ?(@.price < 100) memfilter item array dengan bidang harga kurang dari 100, ?(@.status == 'active') memfilter catatan dengan status active. @ mewakili elemen array yang sedang diiterasi saat ini, @.field mengakses bidang tertentu dari elemen saat ini, ini membuat penyaringan bersyarat sangat intuitif.
Mengapa perlu alat JSONPath khusus daripada debug langsung di kode? Karena saat menulis asersi otomatis antarmuka atau kode ekstraksi data, jika JSONPath salah tulis, Anda mungkin perlu menjalankan antarmuka berulang kali, mencetak log, mengubah kode lalu menjalankan ulang, efisiensinya sangat rendah. Debug interaktif di alat online dapat melihat hasil dalam hitungan detik, menyesuaikan ekspresi dan umpan balik seketika, setelah diverifikasi benar baru disalin ke kode, dapat menghemat banyak waktu debug.
Tampilan tabel adalah fitur praktis yang membedakan alat ini dari banyak alat serupa: ketika hasil kueri adalah array objek (ini adalah bentuk daftar paling umum yang dikembalikan antarmuka), otomatis mengekstrak semua kunci objek menjadi header tabel, menampilkan data tiap baris secara rata, mirip pengalaman menjelajah tabel Excel, jauh lebih intuitif daripada mencari nilai bidang baris demi baris di JSON yang terindentasi, hanya dengan melirik cepat dapat membandingkan perbedaan bidang banyak catatan.
Perbaikan otomatis kesalahan JSON juga merupakan fitur yang dirancang untuk skenario pengembangan nyata: JSON yang disalin dari log, dokumen, jendela obrolan sering mengalami berbagai masalah kecil — menggunakan tanda kutip tunggal, kurang koma, kelebihan koma trailing di item terakhir, nama properti tidak diberi tanda kutip ganda dll., memperbaiki manual sangat merepotkan, fungsi perbaikan otomatis alat ini dapat menangani sebagian besar masalah format JSON umum hanya dengan satu klik, tidak perlu mencari kesalahan karakter demi karakter.
Riwayat lokal adalah detail kecil yang dioptimalkan untuk penggunaan frekuensi tinggi: pengembang sering perlu men-debug antarmuka yang sama berulang kali, setiap kali membuka alat lalu menempel JSON lagi sangat merepotkan, alat ini otomatis menyimpan input terbaru ke penyimpanan lokal browser, saat dibuka berikutnya otomatis memulihkan konten sebelumnya, 200 riwayat cukup untuk penggunaan kerja sehari-hari. Semua data hanya disimpan di browser Anda sendiri, tidak diunggah.
Perlu dijelaskan bahwa alat ini mendukung subset sintaks JSONPath inti yang praktis (akses properti, indeks, wildcard, irisan, penyaringan bersyarat), mencakup lebih dari 90% skenario pengembangan sehari-hari. Untuk sintaks tingkat lanjut seperti recursive descent (..), ekspresi skrip, kombinasi multi-kondisi saat ini belum didukung. Jika skenario Anda membutuhkan fitur lanjutan ini, mungkin perlu menggunakan pustaka implementasi yang lebih lengkap. Untuk sebagian besar kebutuhan debug antarmuka dan ekstraksi bidang, kumpulan sintaks saat ini sudah cukup dan ringkas cepat.