← Kembali ke Blog

JSON Path Finder: Menavigasi Struktur JSON yang Kompleks

Kuasai navigasi path JSON dengan JSONPath, jq, dan alat pencari path. Pelajari cara melakukan kueri dan mengekstrak data dari struktur JSON yang bersarang.

Big JSON Team12 menit bacaalat
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

12 min read

Apa itu JSON Path?

JSON Path adalah bahasa kueri untuk JSON, mirip dengan XPath untuk XML. Ini memungkinkan Anda menavigasi dan mengekstrak data tertentu dari struktur JSON yang kompleks.

Sintaksis JSONPath

| Operator | Deskripsi | Contoh |

|----------|-------------|---------|

| $ | Objek akar (root) | $ |

| . | Operator anak | $.store |

| [] | Notasi kurung siku | $['store'] |

| [n] | Indeks array | $.books[0] |

| [] | Wildcard | $.books[] |

| .. | Penurunan rekursif | $..price |

Contoh JSON

{

"store": {

"books": [

{ "title": "1984", "price": 8.99 },

{ "title": "Dune", "price": 12.99 }

]

}

}

Contoh Path

$.store.books[0].title          # "1984"

$.store.books[].price # [8.99, 12.99]

$.store.books[?(@.price < 10)] # Buku di bawah $10

Menggunakan Big JSON Viewer

Big JSON Viewer memudahkan pencarian path:

  • Muat JSON Anda
  • Klik nilai apa pun
  • Path muncul secara otomatis
  • Salin dengan satu klik
  • Baris Perintah jq (Command Line)

    # Dapatkan field
    

    jq '.store.books[0].title' data.json

    # Semua elemen array

    jq '.store.books[].title' data.json

    # Filter

    jq '.store.books[] | select(.price < 10)' data.json

    # Transformasi

    jq '.store.books | map({title, price})' data.json

    JavaScript JSONPath

    import { JSONPath } from 'jsonpath-plus';
    
    

    const data = {

    store: {

    books: [

    { title: "1984", price: 8.99 },

    { title: "Dune", price: 12.99 }

    ]

    }

    };

    // Path dasar

    const titles = JSONPath({

    path: '$.store.books[].title',

    json: data

    });

    // Filter

    const cheap = JSONPath({

    path: '$.store.books[?(@.price < 10)]',

    json: data

    });

    Python JSONPath

    from jsonpath_ng import parse
    
    

    data = {

    "store": {

    "books": [

    {"title": "1984", "price": 8.99}

    ]

    }

    }

    expr = parse('$.store.books[].title')

    matches = [match.value for match in expr.find(data)]

    Pola Umum

    Ekstrak semua harga

    $..price

    Filter berdasarkan kondisi

    $.items[?(@.status == "active")]

    Dapatkan field bersarang dari array

    $.users[].address.city

    Beberapa kondisi

    $.products[?(@.price > 10 && @.inStock == true)]

    Kueri Tingkat Lanjut

    Pencarian Rekursif

    Temukan semua kemunculan field:

    $..email

    Pemotongan Array (Array Slicing)

    $.users[0:5]      # 5 pengguna pertama
    

    $.users[-1] # Pengguna terakhir

    $.users[::2] # Setiap pengguna kedua

    Praktik Terbaik

  • Mulai dari yang sederhana, pertajam secara bertahap
  • Gunakan alat visual (Big JSON Viewer) terlebih dahulu
  • Uji path dengan data sampel
  • Tangani path yang hilang dengan anggun
  • Penanganan Kesalahan (Error Handling)

    try {
    

    const result = JSONPath({ path: '$.invalid.path', json: data });

    if (result.length === 0) {

    console.log('Path tidak ditemukan');

    }

    } catch (error) {

    console.error('JSONPath tidak valid:', error);

    }

    Kesimpulan

    Alat path JSON sangat penting untuk bekerja dengan data yang kompleks. Gunakan Big JSON Viewer untuk eksplorasi visual dan jq untuk pemrosesan baris perintah!

    Share:

    Artikel Terkait

    Read in English