Penguji JSONPath
Ekspresi JSONPath
Input JSON
Hasil
| Sintaks | Deskripsi |
|---|---|
| $ | Objek atau array akar |
| @ | Node saat ini (digunakan dalam ekspresi filter) |
| object.property | Anak dengan notasi titik |
| ['object'].['property'] | Anak atau beberapa anak dengan notasi kurung siku |
| ..property | Penelusuran rekursif |
| * | Wildcard. Memilih semua elemen |
| [n] | Memilih elemen ke-n dari sebuah array |
| [n1,n2] | Memilih item array n1 dan n2 (union) |
| [start:end:step] | Operator irisan array |
| ?(expression) | Ekspresi filter |
| (expression) | Ekspresi skrip |
Detail teknis
Cara Kerja Penguji JSONPath
Apa yang Dilakukan Alat Ini
Penguji JSONPath memungkinkan Anda melakukan kueri data JSON bertingkat menggunakan ekspresi JSONPath, mirip dengan cara kerja XPath untuk XML. Penguji jsonpath ini berfungsi sebagai penguji ekspresi JSONPath dan pemilih JSON, membantu developer mengekstrak nilai, array, atau objek tertentu dari struktur JSON yang kompleks. Saat Anda perlu menguji jsonpath online, alat ini menampilkan semua nilai yang cocok beserta path-nya. Alat ini mendukung sintaks JSONPath termasuk notasi titik ( $.store.book), notasi kurung ( $['store']['book']), wildcard ( $..*), pemotongan array, dan ekspresi pemfilteran. Alat ini mengikuti semantik jsonpath-plus; implementasi JSONPath bervariasi, jadi jika ekspresi Anda berfungsi di tempat lain tetapi tidak di sini, kemungkinan itu perbedaan dialek. Alat ini menampilkan baik nilai yang cocok maupun path JSONPath, sehingga mudah memahami bagaimana ekspresi menavigasi struktur JSON.
Kasus Penggunaan Umum untuk Developer
Developer menggunakan penguji JSONPath saat bekerja dengan respons API, file konfigurasi, atau struktur data JSON bertingkat yang kompleks. Penguji ekspresi JSONPath membantu mengekstrak field tertentu dari objek yang sangat bertingkat, memfilter array berdasarkan predikat, atau menemukan semua kemunculan sebuah key tertentu. Banyak developer menggunakan penguji JSONPath untuk melakukan kueri data JSON dari REST API, mem-parsing file log, atau menavigasi objek konfigurasi yang kompleks. Alat ini berguna saat melakukan debugging transformasi data, memvalidasi respons API, atau memahami skema JSON yang kompleks. Sebelum menjalankan kueri JSONPath, Anda mungkin ingin memformat JSON Anda menggunakan JSON Formatter agar lebih mudah dibaca. Untuk file konfigurasi, JSON ↔ YAML Converter dapat membantu mengonversi antar format. Saat memeriksa data array, alat JSON Array to Table dapat mengekspor hasil ke format tabel agar analisis lebih mudah.
Format Data, Tipe, atau Varian
JSONPath menyediakan beberapa cara untuk menavigasi struktur JSON. Alat ini mendukung pemilih root ($), pemilih child (. atau []), pemilih descendant ( ..), pengindeksan array ([0], [-1]), dan pemotongan array ( [0:3]). Ekspresi JSONPath umum yang digunakan developer:
$.items[*].id— Ekstrak semua field id dari array items$..id— Temukan semua field id pada level nesting apa pun$['key-with-dash']— Akses key dengan karakter khusus$..book[?(@.price < 10)].title— Filter buku berdasarkan harga dan ekstrak judul
Ekspresi ini menunjukkan bagaimana JSONPath dapat melakukan kueri pada array bertingkat, memfilter objek berdasarkan predikat, dan mengekstrak field tertentu dari struktur yang kompleks.
Kesalahan Umum dan Kasus Tepi
Salah satu kesalahan umum adalah menyamakan JSONPath dengan akses properti objek JavaScript, karena JSONPath menggunakan sintaks berbeda untuk pemfilteran array dan wildcard. Masalah lain adalah memahami kapan harus memakai notasi titik vs notasi kurung: notasi titik cocok untuk key sederhana, tetapi notasi kurung diperlukan untuk key dengan karakter khusus atau saat menggunakan ekspresi. Pengindeksan array bisa rumit: indeks negatif seperti [-1] merujuk ke elemen terakhir, tetapi tidak semua implementasi JSONPath mendukung ini. Ekspresi pemfilteran harus menggunakan operator perbandingan yang benar dan merujuk item saat ini dengan @. Pemilih descendant (..) dapat menghasilkan hasil yang tidak terduga jika mencocokkan lebih banyak elemen daripada yang dimaksud. Developer sebaiknya menguji ekspresi JSONPath dengan berbagai struktur JSON, termasuk kasus tepi seperti array kosong, nilai null, dan objek yang sangat bertingkat. Beberapa implementasi JSONPath memiliki perbedaan halus dalam menangani kasus tepi, sehingga pengujian sangat penting.
Error dan Validasi
Saat bekerja dengan JSONPath, beberapa kondisi error dapat terjadi. Input JSON yang tidak valid akan menghasilkan error parsing sebelum ekspresi JSONPath dievaluasi. Ekspresi JSONPath yang tidak valid akan mengembalikan pesan error yang menunjukkan apa yang salah pada sintaksnya. Hasil kosong dikembalikan sebagai array kosong ketika ekspresi tidak mencocokkan nilai apa pun dalam struktur JSON—ini adalah perilaku normal, bukan error. Alat ini memvalidasi baik sintaks JSON maupun sintaks ekspresi JSONPath, serta memberikan pesan error yang jelas untuk input yang tidak benar. Jika ekspresi JSONPath Anda valid tetapi tidak menghasilkan apa pun, ekspresi tersebut mungkin tidak cocok dengan struktur data JSON Anda, atau data tidak berisi field yang diharapkan.
Kapan Menggunakan Alat Ini vs Kode
Gunakan penguji JSONPath ini untuk pengembangan kueri cepat, debugging ekspresi kompleks, atau mengeksplorasi struktur data JSON. Ini ideal untuk menguji ekspresi JSONPath sebelum mengimplementasikannya dalam kode, terutama saat bekerja dengan API yang belum familiar atau data bertingkat yang kompleks. Umpan balik visual membantu mengidentifikasi mengapa ekspresi cocok atau tidak cocok dengan data tertentu. Untuk kode produksi, gunakan library JSONPath yang terintegrasi ke aplikasi Anda dan dapat memproses data JSON secara efisien. Alat browser unggul untuk pengembangan interaktif dan eksplorasi, sedangkan solusi berbasis kode memberikan performa, keamanan tipe, dan integrasi dengan pipeline pemrosesan data. Untuk dataset besar atau aplikasi berperforma tinggi, implementasi JSONPath native dalam bahasa pemrograman Anda memberikan performa lebih baik dibanding alat berbasis browser.