Tester JSONPath yang cepat dan privat
Saat mengolah data JSON yang besar atau berlapis, mengekstrak informasi spesifik yang Anda butuhkan bisa jadi merepotkan. Tester JSONPath ini menyediakan lingkungan live untuk menulis, menguji, dan men-debug kueri Anda. Saat Anda mengetik ekspresi, alat ini langsung mengevaluasinya pada payload JSON Anda, menampilkan nilai yang diekstrak beserta path persis di mana nilai tersebut berada.
Karena ini adalah evaluator JSONPath client-side sepenuhnya, semua pemrosesan dilakukan secara lokal di perangkat Anda. Data JSON Anda tidak pernah dikirim ke server. Artinya, Anda bisa dengan aman menempelkan (paste) payload API production, hasil ekspor database, atau file konfigurasi sensitif tanpa khawatir akan kebocoran data atau pelanggaran privasi.
Fitur utama untuk developer
- Evaluasi live: Hasilnya langsung diperbarui saat Anda mengubah data JSON atau kueri. Tidak perlu mengklik tombol submit atau menunggu respons server.
- Parsing aman: Alat ini menggunakan engine evaluasi yang aman (
eval: 'safe') untuk memproses kueri Anda, mencegah eksekusi kode berbahaya namun tetap mendukung penuh ekspresi filter yang kompleks. - Ekstraksi path: Selain menampilkan nilai yang cocok, alat ini juga menghasilkan path absolut untuk setiap kecocokan. Ini sangat berguna jika Anda perlu memperbarui node spesifik tersebut secara terprogram nantinya.
- Contoh bawaan: Jika Anda belum terbiasa dengan sintaksnya, Anda bisa memuat dataset contoh toko buku dan mengklik beberapa ekspresi yang sudah tersedia untuk melihat cara kerja berbagai operator.
Cara menulis query JSONPath
JSONPath menggunakan sintaks khusus untuk menavigasi objek dan array JSON. Jika Anda ingin menguji logika ekspresi JSONPath, Anda perlu memahami operator-operator dasarnya:
$mewakili objek atau array root. Setiap ekspresi JSONPath absolut dimulai dengan simbol ini.@mewakili node saat ini yang sedang diproses. Simbol ini utamanya digunakan di dalam ekspresi filter..atau[]adalah operator child yang digunakan untuk memilih properti. Sebagai contoh,$.store.bookdan$['store']['book']memiliki fungsi yang sama...adalah operator recursive descent. Operator ini mencari key tertentu di mana saja dalam pohon JSON, tidak peduli seberapa dalam tingkatannya (misalnya,$..pricemenemukan semua harga).*adalah wildcard yang cocok dengan semua elemen dalam objek atau array. Misalnya,$.store.*memilih semua hal yang ada langsung di dalam objek store.[?()]menerapkan ekspresi filter. Anda dapat menggunakan operator logika standar di dalamnya. Sebagai contoh,$..book[?(@.author == 'Nigel Rees')]akan menemukan semua buku yang ditulis oleh penulis tersebut.[start:end:step]memungkinkan Anda untuk memotong (slice) array, mirip dengan Python.$.store.book[-1:]memilih buku terakhir di dalam array.
Contoh penggunaan
Pengembangan dan debugging API. API REST dan GraphQL modern sering kali mengembalikan payload JSON yang sangat besar. Daripada menulis kode sementara untuk mem-parsing dan memeriksa respons, Anda dapat menempelkan payload ke alat JSONPath online ini untuk memverifikasi struktur data dengan cepat dan memastikan query Anda mengekstrak field yang tepat.
Pengujian otomatis. Saat menulis integration test atau end-to-end test (menggunakan alat seperti Postman, RestAssured, atau Playwright), Anda sering kali perlu memastikan bahwa nilai tertentu ada dalam respons JSON. Menggunakan jsonpath tester membantu Anda menyempurnakan string query sebelum menulisnya langsung (hardcode) ke dalam test suite Anda.
Ekstraksi dan transformasi data. Jika Anda sedang memigrasikan data atau membangun pipeline ETL (Extract, Transform, Load), Anda sering kali perlu mengisolasi array atau objek tertentu. Anda dapat menggunakan alat ini untuk mengetahui path persis yang dibutuhkan guna mengekstrak data target Anda. Jika data sumber Anda dalam format XML, Anda bisa menggunakan konverter XML to JSON terlebih dahulu, dan jika Anda perlu memformat data yang di-minify sebelum memeriksanya, JSON Formatter dapat membantu. Anda juga dapat menggunakan alat JSON Compare untuk melihat bagaimana data Anda berubah sebelum dan sesudah transformasi.