JSONPath dalam API: Panduan Sederhana

Respons JSON API rumit bisa menakutkan, tapi JSONPath menyederhanakannya. JSONPath memungkinkan ekstraksi data spesifik dengan mudah. Apa itu JSONPath, dan bagaimana cara menggunakannya? Artikel ini menjawabnya!

Ardianto Nugroho

Ardianto Nugroho

15 April 2025

JSONPath dalam API: Panduan Sederhana

Pernahkah Anda menggali respons JSON yang sangat besar, mencoba menemukan satu bagian data yang Anda butuhkan? Jika ya, maka Anda tahu bahwa itu bisa seperti mencari jarum di tumpukan jerami. Perkenalkan JSONPath - alat kecil yang rapi yang dapat membuat hidup Anda jauh lebih mudah saat berurusan dengan data JSON di API.

Apa itu JSONPath?

JSONPath adalah bahasa kueri untuk JSON, mirip dengan XPath untuk XML. Ini memungkinkan Anda untuk menavigasi dan mengekstrak bagian-bagian tertentu dari data JSON Anda menggunakan sintaks yang sederhana dan intuitif. Anggap saja ini sebagai cara untuk menjalankan kueri pada data JSON Anda dan mendapatkan apa yang Anda butuhkan tanpa mengarungi seluruh respons.

Mengapa Menggunakan JSONPath?

Bayangkan Anda memiliki respons JSON yang sangat besar dari sebuah API; yang Anda butuhkan hanyalah nilai dari bidang tertentu yang terletak jauh di dalam. Tanpa JSONPath, Anda biasanya harus menulis banyak kode untuk mengurai JSON, yang bisa jadi membosankan dan rawan kesalahan. JSONPath menyederhanakan ini dengan membiarkan Anda menentukan dengan tepat apa yang ingin Anda ekstrak, membuat kode Anda lebih bersih dan lebih mudah dipelihara.

Bagaimana Cara Kerja JSONPath?

JSONPath menggunakan sintaks yang mirip dengan notasi objek JavaScript, dengan beberapa fitur tambahan untuk kueri yang lebih kompleks. Berikut adalah ringkasan singkat dari sintaks dasar:

Mari selami beberapa contoh untuk melihat JSONPath beraksi.

Contoh JSONPath Dasar

Pertimbangkan data JSON berikut dari API database film:

{
  "movies": {
    "action": [
      { "title": "Mad Max: Fury Road", "director": "George Miller", "year":                  2015, "rating": 8.1 },
      { "title": "John Wick", "director": "Chad Stahelski", "year": 2014,                     "rating": 7.4 }
    ],
    "drama": [
      { "title": "The Shawshank Redemption", "director": "Frank Darabont",                   "year": 1994, "rating": 9.3 },
      { "title": "Forrest Gump", "director": "Robert Zemeckis", "year":                       1994, "rating": 8.8 }
    ],
    "comedy": [
      { "title": "The Grand Budapest Hotel", "director": "Wes Anderson",                     "year": 2014, "rating": 8.1 }
    ]
  }
}

Mengekstrak semua film aksi:

$.movies.action[*]

Ini akan memberi Anda array dari semua objek film aksi.

Mengekstrak judul semua film drama:

$.movies.drama[*].title

Ini akan mengembalikan array dari judul semua film drama: ["The Shawshank Redemption", "Forrest Gump"].

Mengekstrak rating dari "Mad Max: Fury Road":

$.movies.action[?(@.title == "Mad Max: Fury Road")].rating

Ini akan mengembalikan rating dari "Mad Max: Fury Road": 8.1.

Menemukan semua film yang dirilis pada tahun 2014:

$.movies..[?(@.year == 2014)]

Ini akan mengembalikan semua film yang dirilis pada tahun 2014, yang dalam kasus ini adalah: ["John Wick", "The Grand Budapest Hotel"].

JSONPath di API

Menggunakan JSONPath di API sangat berguna ketika Anda ingin mengekstrak informasi spesifik dari respons JSON. Banyak bahasa pemrograman dan alat memiliki pustaka yang mendukung JSONPath, sehingga mudah untuk diintegrasikan ke dalam proyek Anda.

Misalnya, di Javascript, Anda dapat menggunakan pustaka jsonpath:

const jsonpath = require('jsonpath');

// Contoh data JSON
const data = {
  movies: {
    action: [
      { title: "Mad Max: Fury Road", director: "George Miller", year: 2015, rating: 8.1 },
      { title: "John Wick", director: "Chad Stahelski", year: 2014, rating: 7.4 }
    ],
    drama: [
      { title: "The Shawshank Redemption", director: "Frank Darabont", year: 1994, rating: 9.3 },
      { title: "Forrest Gump", director: "Robert Zemeckis", year: 1994, rating: 8.8 }
    ],
    comedy: [
      { title: "The Grand Budapest Hotel", director: "Wes Anderson", year: 2014, rating: 8.1 }
    ]
  }
};

// Mengekstrak judul semua film drama
const titles = jsonpath.query(data, '$.movies.drama[*].title');
console.log(titles); // Output: ["The Shawshank Redemption", "Forrest Gump"]

Demikian pula, di Python, Anda dapat menggunakan pustaka jsonpath-ng:

from jsonpath_ng import jsonpath, parse

# Contoh data JSON
data = {
    "movies": {
        "action": [
            {"title": "Mad Max: Fury Road", "director": "George Miller", "year": 2015, "rating": 8.1},
            {"title": "John Wick", "director": "Chad Stahelski", "year": 2014, "rating": 7.4}
        ],
        "drama": [
            {"title": "The Shawshank Redemption", "director": "Frank Darabont", "year": 1994, "rating": 9.3},
            {"title": "Forrest Gump", "director": "Robert Zemeckis", "year": 1994, "rating": 8.8}
        ],
        "comedy": [
            {"title": "The Grand Budapest Hotel", "director": "Wes Anderson", "year": 2014, "rating": 8.1}
        ]
    }
}

# Mengekstrak judul semua film drama
jsonpath_expr = parse('$.movies.drama[*].title')
titles = [match.value for match in jsonpath_expr.find(data)]
print(titles)  # Output: ["The Shawshank Redemption", "Forrest Gump"]

Menggunakan JSONPath di Apidog

An Image showing the dashboard of Apidog

Apidog adalah alat serbaguna yang dirancang untuk menyederhanakan proses bekerja dengan API, dan mendukung JSONPath secara langsung.

Berikut adalah bagaimana Apidog dapat membantu Anda memanfaatkan kekuatan JSONPath secara efektif:

Pertama. Anda perlu mengirim permintaan ke API Anda dan melihat respons secara langsung dengan Apidog. Kemudian Anda dapat menggunakan antarmuka yang disediakan untuk menerapkan kueri JSONPath untuk mengekstrak judul semua film aksi dari respons.

Apidog's Post Processcers Page

Dari tangkapan layar di atas, Anda akan melihat bahwa (1) kami mengirim permintaan GET ke server kami - Saya membuat server express sederhana menggunakan data JSON yang kami dapatkan di atas sebagai respons. Kemudian saya beralih ke tab Post Processors (2), dan menambahkan proses baru - Extract Variable (3).

Setelah mengklik Extract Variable, Anda akan diperlihatkan halaman di bawah ini;

Apidog's Extract JsonPath Config Page

Anda dapat mengatur nama variabel (1) jika Anda suka. Variabel berguna jika Anda ingin memantau atau membangun API yang berbeda dan Anda memerlukan satu tempat untuk mengelola konfigurasi umum. Variabel di sini seperti file .env.

Langkah lainnya adalah mengetik JSONPath yang ingin Anda filter (2). Dalam kasus kami di sini, kami ingin mendapatkan judul film dalam array action dari JSON kami. Setelah Anda mengetik jalur saat ini, klik tombol panah (3) untuk membuka halaman respons kueri seperti yang ditunjukkan di bawah ini.

jsonpath response apidog

Seperti yang dapat Anda lihat dari respons di atas, Apidog memfilter judul film dalam array action dan menampilkannya kepada kami.

Jika Anda ingin mencoba ini, pastikan untuk mengunduh dan menginstal Apidog dan mengirim permintaan pertama Anda dengannya.

button

Kesimpulan

JSONPath adalah alat yang sangat berharga untuk menavigasi dan mengekstrak data dari respons JSON di API. Ini menyederhanakan proses bekerja dengan struktur JSON yang kompleks, membuat alur kerja pengembangan Anda lebih efisien. Dengan mengintegrasikan JSONPath dengan alat seperti Apidog, Anda dapat dengan mudah memfilter dan mengambil data yang tepat yang Anda butuhkan, meningkatkan pengujian dan proses debugging API Anda. Baik Anda mengekstrak judul film, memfilter catatan tertentu, atau memvalidasi respons, JSONPath menawarkan cara yang jelas dan ringkas untuk menangani data JSON. Cobalah di proyek Anda berikutnya dan rasakan kesederhanaan yang disederhanakan yang dibawanya.

Explore more

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)

Cara Menggunakan Lovable AI (Alternatif Cursor untuk Pengembang Web)

Pelajari cara buat web apa pun dgn Lovable. Panduan lengkap, fitur inovatif, & integrasi Apidog (API gratis).

15 April 2025

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan Komprehensif

Cara Menambahkan Kunci API Kustom ke Cursor: Panduan Komprehensif

Tutorial ini memandu Anda menyiapkan & mengelola API key khusus di Cursor: OpenAI, Anthropic, Google, & Azure.

11 April 2025

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat Lanjut

Cara Menggunakan NVIDIA Llama Nemotron API untuk Agen AI Tingkat Lanjut

Pelajari API NVIDIA Llama Nemotron utk buat agen AI canggih.

11 April 2025

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.