Query JSON dengan JSONPath

Query JSON dengan JSONPath: wildcard, recursive descent, slice, dan ekspresi filter seperti [?(@.price < 10)]. Hasil diperbarui saat mengetik. Bukan sintaks jq.

Contoh:
Hasil

$ adalah root; .name atau ['name'] memilih anak; [0] elemen array; [*] semua elemen; .. mencari di kedalaman mana pun; [?(@.price < 10)] menyaring; [-1:] mengambil elemen terakhir.

Berjalan sepenuhnya di browser Anda. Data Anda tidak pernah diunggah.

Alat Terkait

Lihat Semua

Apa itu JSON Query (JSONPath)?

Alat JSON Query mengevaluasi ekspresi JSONPath terhadap JSON Anda dan menampilkan setiap nilai yang cocok sebagai array JSON. Alat ini mendukung wildcard, recursive descent, slice array, dan ekspresi filter. Catatan: ia memakai sintaks JSONPath ($.store.book[*].title), bukan sintaks pipe jq.

Cara menggunakan JSON Query (JSONPath)

  1. Tempel JSON ke kotak Input JSON (atau klik contoh, yang juga memuat data contoh).
  2. Ketik Ekspresi JSONPath, misalnya $..price.
  3. Baca nilai yang cocok di keluaran; label menunjukkan berapa yang cocok.
  4. Salin array hasil dengan Salin.

Contoh

Masukan
{"store":{"book":[{"title":"A","price":8},{"title":"B","price":12}]}}
Query: $.store.book[?(@.price < 10)].title
Keluaran
[
  "A"
]

Kapan menggunakan JSON Query (JSONPath)

Pakai untuk menguji ekspresi JSONPath sebelum dipakai di alat yang menerima JSONPath (API gateway, kubectl -o jsonpath Kubernetes, kerangka uji, monitoring). Jika Anda butuh fitur jq seperti pipe, map, atau konstruksi objek, pakai jq sendiri – itu tidak didukung. Untuk satu path persis, Pencari Path JSON lebih sederhana.

Cara kerja JSON Query (JSONPath)

Query dievaluasi dengan pustaka jsonpath-plus (JSONPath Goessner plus ekstensi). $ adalah root, .name atau ['name'] memilih properti, [0] indeks, [*] semua anak, .. mencari di setiap kedalaman, [start:end] mengiris array (indeks negatif dihitung dari akhir), dan [?(…)] memfilter dengan @ sebagai elemen saat ini. Ekspresi filter dijalankan di evaluator aman jsonpath-plus, yang mendukung perbandingan dan operator logika tetapi tidak mengeksekusi JavaScript sembarang. Hasilnya selalu berupa array kecocokan, dicetak dengan indentasi 2 spasi.

Kasus Penggunaan Umum

  • Mengekstrak semua harga atau id dari respons API
  • Menguji JSONPath untuk uji API atau aturan monitoring
  • Memfilter elemen array berdasarkan kondisi
  • Membuat prototipe query bergaya jsonpath kubectl

Catatan Keamanan

Semuanya berjalan secara lokal di browser Anda; kode yang Anda tempel tidak diunggah.

Pertanyaan Umum

Apakah ini jq?

Bukan. Ia memakai JSONPath, bahasa query yang berbeda. Pipe dan fungsi jq tidak didukung.

Mengapa hasilnya selalu array?

Ekspresi JSONPath bisa mencocokkan sejumlah nilai, jadi semua kecocokan dikembalikan dalam array.

Apakah JSON saya dikirim ke server?

Tidak, query berjalan di browser Anda.

Apakah angka besar kehilangan presisi di sini?

Ya, nilai dievaluasi sebagai angka JavaScript, sehingga bilangan bulat di atas 2^53 bisa dibulatkan pada hasil query.

Langkah berikutnya yang disarankan

Jelajahi kategori lainnya