Penguji JSONPath

Tempel dokumen JSON dan ketik kueri JSONPath. Anda mendapat jumlah kecocokan dan, untuk setiap kecocokan, jalur ternormalisasi serta nilainya. Kueri berjalan di peramban Anda dan tidak ada yang dikirim.

Gratis Berjalan di peramban Anda Diperiksa Selasa, 10 November 2026

Teks harus berupa JSON yang valid. Contohnya adalah dokumen toko buku dari RFC 9535, bagian 1.5.

Diawali dengan $, akar. Filter memakai @ untuk item yang diuji, seperti [[email protected] < 10]. Spasi di awal dan akhir diabaikan.

Hasil

Kecocokan — Jumlah simpul yang dipilih kueri. Sebuah simpul dapat dipilih lebih dari sekali jika kueri mengulanginya.
Kecocokan, berurutan

Alat ini berjalan di peramban Anda. Apa yang Anda masukkan tidak dikirim kepada kami.

Cara memakai

  1. Tempel dokumen JSON ke Dokumen JSON. Gunakan contoh untuk mencoba alat ini lebih dulu.
  2. Ketik Kueri JSONPath di kotak di bawahnya, diawali dengan $. Filter ditulis dalam kurung siku: [[email protected] < 10].
  3. Baca jumlah Kecocokan, lalu tabel Kecocokan, berurutan: setiap baris memiliki jalur kecocokan dan nilainya.
  4. Jika pesan menunjukkan posisi masalah, lihat karakter itu di kueri dan perbaiki tanda kurung, tanda kutip atau titiknya.

Cara kueri memilih simpul

Kueri adalah daftar segmen setelah $. Segmen anak seperti .store atau [0] memilih anak dari setiap simpul yang dicapainya, dan segmen descendant seperti ..author mengunjungi simpul dan semua turunannya sebelum memilih. Simpul dari satu segmen muncul menurut urutan input, dan larik selalu dibaca menurut urutannya (RFC 9535, bagian 2.5 dan 2.5.2.2).

Pemilih nama hanya mencocokkan anggota dengan nama persis itu dan hanya di dalam objek. Indeks negatif menghitung dari akhir larik, sehingga -1 adalah elemen terakhir. Irisan seperti [1:5:2] mengambil awal, akhir dan langkah, dan langkah 0 tidak memilih apa pun (bagian 2.3.4.2).

Filter, fungsi dan yang ditolak alat

Filter [?...] menguji setiap anak dari larik atau objek. Perbandingan memakai ==, !=, <, <=, > dan >=; && , || dan ! menggabungkan uji, dan tanda kurung mengelompokkannya. Anggota yang hilang adalah Nothing, dan dua nilai Nothing sama. Angka dibandingkan dengan angka, teks dengan teks, dan nilai dengan tipe satu tidak pernah sama dengan nilai bertipe lain (bagian 2.3.5.2).

Fungsi length, count, value, match dan search didukung sebagaimana RFC 9535 mendefinisikannya. match dan search menerima ekspresi reguler yang ditulis dalam I-Regexp, format RFC 9485; pola yang bukan I-Regexp yang valid tidak cocok dengan apa pun. Literal larik dan objek bukan bagian dari tata bahasa, sehingga alat menolaknya, dan ia menolak hasil fungsi yang dipakai sendirian dalam filter, karena RFC 9535 menyatakan itu tidak bertipe benar.

Contoh toko buku

Dengan dokumen contoh dan kueri $.store.book[[email protected] < 10].title, buku yang lebih murah dari 10 adalah yang pertama dan ketiga. Judulnya adalah dua kecocokan di bawah, dengan jalur ternormalisasi masing-masing.

Jalur ternormalisasi Nilai (JSON)
$['store']['book'][0]['title'] "Sayings of the Century"
$['store']['book'][2]['title'] "Moby Dick"

Pertanyaan yang sering diajukan

Mengapa kueri tidak mengembalikan apa-apa padahal kuncinya ada?

Pemilih nama hanya mencocokkan anggota objek dengan nama yang persis sama, dan perbandingannya peka huruf besar-kecil. Ia tidak pernah mencocokkan elemen larik, jadi gunakan indeks atau wildcard untuk larik.

Mengapa 13 dan "13" tidak sama dalam filter?

RFC 9535 membandingkan nilai dengan tipe berbeda sebagai tidak sama (bagian 2.3.5.3). Angka dan teks adalah nilai yang berbeda, jadi == bernilai salah dan != bernilai benar, meskipun karakternya tampak sama.

Apa yang dipilih indeks negatif?

Indeks negatif menghitung dari akhir larik: -1 adalah elemen terakhir dan -2 adalah yang sebelumnya. Indeks di luar larik tidak memilih apa pun dan bukan galat (bagian 2.3.3.2).

Mengapa alat menolak length(@) ketika ia sendirian dalam filter?

length mengembalikan angka, dan filter memerlukan uji yang benar atau salah. Bandingkan hasilnya, seperti [?length(@.title) > 15], yang bertipe benar.

Apakah alat mengirim JSON saya ke server?

Tidak. Dokumen dibaca oleh peramban Anda dengan JSON.parse, kueri juga dijalankan di sana, dan tidak ada yang disimpan. Halaman tidak membuat permintaan jaringan.

Sumber

Angka dan teks terakhir diperiksa pada Selasa, 10 November 2026.

Kami memakai cookie yang diperlukan agar situs berjalan. Dengan persetujuan Anda, Google juga memakai cookie iklan untuk menampilkan iklan yang dipersonalisasi. Jika Anda menolaknya, iklan tetap tampil, tetapi tidak dipersonalisasi.