Cara menggunakan json array decode php

 JSON, kependekan dari JavaScript Object Notation, JSON adalah format ringan yang umum untuk menyimpan dan bertukar informasi. Seperti namanya, itu awalnya berasal dari JavaScript tetapi merupakan format bahasa-independen (language-independent format) untuk menyimpan informasi. Banyak bahasa seperti PHP sekarang yang mengimplementasikan fungsi untuk membaca (read) dan membuat (create) data JSON.

Di tutorial kali ini saya akan mengajarkan kalian cara membaca file JSON dan mengubahnya menjadi array di PHP. Pelajari cara mengurai JSON menggunakan fungsi json_decode() dan json_encode().

Membaca JSON Dari File atau String di PHP

Katakanlah kalian memiliki file yang berisi informasi dalam format JSON. Bagaimana kalian mengakses dan menyimpannya di PHP?

Pertama, kalian perlu memasukkan data dari file ke dalam variabel dengan menggunakan file_get_contents(). Setelah data berada dalam string, kalian bisa memanggil fungsi json_decode() untuk mengekstrak informasi dari string. Ingatlah bahwa JSON hanya menyediakan cara untuk menyimpan informasi sebagai string menggunakan seperangkat aturan yang telah ditentukan. Adalah tugas kita untuk memecahkan kode string dengan benar dan mendapatkan informasi yang kita inginkan.

Baca juga : Cara memanggil fungsi PHP di JavaScript dan Sebaliknya
 

Fungsi json_decode() menerima empat parameter tetapi kalian hanya akan perlu dua dalam kebanyakan situasi. Parameter pertama menentukan string yang ingin kalian decode. Parameter kedua menentukan bagaimana data yang di decode dikembalikan. Menyetelnya ke true akan mengembalikan array asosiatif dan false akan mengembalikan objek. Berikut adalah contoh dasar. Kita memiliki file bernama people.json dengan konten berikut:

1:  {  
2:    "name": "Dayat",  
3:    "email": "",  
4:    "age": 25  
5:  }  

Kita dapat membaca informasi dari file JSON ini dengan menggunakan kode di bawah ini:

1:  name;  
5:  // Dayat  
6:  echo $decoded_json->email;  
7:  //   
8:  echo $decoded_json->age;  
9:  // 25  
10:  ?>  

Dalam contoh di atas, json_decode() mmengembalikan objek karena parameter kedua disetel ke false. Kalian bisa mengaturnya menjadi true untuk mendapatkan data kembali sebagai array asosiatif. 

1:    

Sekarang, kita akan memecahkan kode JSON yang sedikit lebih rumit dan mencoba untuk mendapatkan kembali informasi yang berguna darinya.

1:  {  
2:    "name": "Dayat",  
3:    "email": "",  
4:    "age": 25,  
5:    "countries": [  
6:      {"name": "Turki", "year": 1982},  
7:      {"name": "Indonesia", "year": 1996},  
8:      {"name": "Portugal", "year": 1987}  
9:    ]  
10:  }  

Tujuan kita adalah untuk mendapatkan kembali semua negara yang dikunjungi oleh orang tersebut di tahun yang berbeda. Nilai yang dikembalikan oleh $decoded_json['countries'] sebenarnya akan menjadi array dan kita akan mengulanginya seperti array biasa untuk mendapatkan data kita.

1:    

Mari kita bahas satu contoh terakhir untuk mengekstrak informasi dari file JSON. Berikut adalah JSON dari mana kita akan mengekstrak data kita.

1:  {  
2:    "customers": [  
3:     {  
4:      "name": "Andrew",  
5:      "email": "",  
6:      "age": 62,  
7:      "countries": [  
8:       {  
9:        "name": "Italy",  
10:        "year": 1983  
11:       },  
12:       {  
13:        "name": "Canada",  
14:        "year": 1998  
15:       },  
16:       {  
17:        "name": "Germany",  
18:        "year": 2003  
19:       }  
20:      ]  
21:     },  
22:     {  
23:      "name": "Bambang",  
24:      "email": "",  
25:      "age": 65,  
26:      "countries": [  
27:       {  
28:        "name": "Belgium",  
29:        "year": 1994  
30:       },  
31:       {  
32:        "name": "Hungary",  
33:        "year": 2001  
34:       },  
35:       {  
36:        "name": "Chile",  
37:        "year": 2013  
38:       }  
39:      ]  
40:     },  
41:     {  
42:      "name": "Adam",  
43:      "email": "",  
44:      "age": 72,  
45:      "countries": [  
46:       {  
47:        "name": "France",  
48:        "year": 1988  
49:       },  
50:       {  
51:        "name": "Brazil",  
52:        "year": 1998  
53:       },  
54:       {  
55:        "name": "Poland",  
56:        "year": 2002  
57:       }  
58:      ]  
59:     },  
60:     {  
61:      "name": "Dayat",  
62:      "email": "",  
63:      "age": 77,  
64:      "countries": [  
65:       {  
66:        "name": "Turki",  
67:        "year": 1982  
68:       },  
69:       {  
70:        "name": "Indonesia",  
71:        "year": 1996  
72:       },  
73:       {  
74:        "name": "Portugal",  
75:        "year": 1987  
76:       }  
77:      ]  
78:     }  
79:    ]  
80:  }  

Kita memiliki dua array bersarang dalam data JSON kali ini. Jadi, kita akan menggunakan dua loop bersarang (nested loops) untuk mendapatkan negara yang dikunjungi oleh pelanggan yang berbeda.

1:    

Kalian sekarang harus memiliki gambaran kasar tentang pendekatan yang harus kalian ambil untuk membaca data JSON dari file tergantung pada cara pembuatannya.

Membaca Data JSON Tanpa Mengetahui Kunci (Keys) Sebelumnya

Sejauh ini kita telah membaca data JSON di mana kita sudah mengetahui semua kuncinya. Itu mungkin tidak selalu benar. Tapi untungnya, kita masih bisa mengekstrak informasi yang berguna dari file setelah kita menyimpannya sebagai array asosiatif. Contoh berikut harusnya bisa menjelaskan semuanya.

1:  {  
2:    "kdsvhe": {  
3:      "name": "Andrew",  
4:      "age": 62  
5:    },  
6:    "lvnwfd": {  
7:      "name": "Adam",  
8:      "age": 65  
9:    },  
10:    "ewrhbw": {  
11:      "name": "Bambang",  
12:      "age": 72  
13:    },  
14:    "klkwcn": {  
15:      "name": "Dayat",  
16:      "age": 25  
17:    }  
18:  }  

Kunci-kunci dalam JSON di atas tampaknya merupakan string acak yang tidak dapat kita prediksi sebelumnya. Namun, setelah kita mengubahnya menjadi array asosiatif, kita tidak perlu lagi mengetahui nilai kunci yang tepat untuk melakukan iterasi melalui data.

1:   $value) {  
5:    $name = $decoded_json[$key]["name"];  
6:    $age = $decoded_json[$key]["age"];  
7:    echo $name.' is '.$age.' years old.';  
8:  }  
9:  /*  
10:  Andrew is 62 years old.  
11:  Adam is 65 years old.  
12:  Bambang is 72 years old.  
13:  Dayat is 25 years old.  
14:  */  
15:  ?>  

Membuat Data JSON di PHP

Kalian juga bisa mengubah data kalian sendiri menjadi string JSON yang diformat dengan baik di PHP dengan bantuan fungsi json_encode(). Ini pada dasarnya menerima tiga parameter tetapi kalian biasanya hanya membutuhkan yang pertama yaitu, nilai yang ingin kalian encode dalam kebanyakan situasi.

1:   [  
4:      ["name" => "Andrew", "score" => 62.5],  
5:      ["name" => "Adam", "score" => 65.0],  
6:      ["name" => "Bambang", "score" => 72.2],  
7:      ["name" => "Dayat", "score" => 57.8]  
8:    ]  
9:  ];  
10:  echo json_encode($people_info);  
11:  /*  
12:  {"customers":[{"name":"Andrew","score":62.5},{"name":"Adam","score":65},{"name":"Bambang","score":72.2},{"name":"Dayat","score":57.8}]}  
13:  */  
14:  ?>  

Kalian mungkin juga perlu menggunakan beberapa flag untuk mendapatkan string JSON dalam format yang diinginkan. Misalnya, flag JSON_PRETTY_PRINT dapat digunakan untuk menambahkan spasi putih untuk pemformatan string JSON yang tepat. Demikian pula, kalian bisa menggunakan flag JSON_PRESERVE_ZERO_FRACTION untuk memastikan nilai float selalu disimpan sebagai float meskipun nilainya setara dengan beberapa bilangan bulat. Kalian bisa melihat daftar semua tanda tersebut di dokumentasi resmi PHP.

1:   [  
4:      ["name" => "Andrew", "score" => 62.5],  
5:      ["name" => "Adam", "score" => 65.0],  
6:      ["name" => "Bambang", "score" => 72.2],  
7:      ["name" => "Dayat", "score" => 57.8]  
8:    ]  
9:  ];  
10:  echo json_encode($people_info, JSON_PRETTY_PRINT|JSON_PRESERVE_ZERO_FRACTION);  
11:  /*  
12:  {  
13:    "customers": [  
14:      {  
15:        "name": "Andrew",  
16:        "score": 62.5  
17:      },  
18:      {  
19:        "name": "Adam",  
20:        "score": 65.0  
21:      },  
22:      {  
23:        "name": "Bambang",  
24:        "score": 72.2  
25:      },  
26:      {  
27:        "name": "Dayat",  
28:        "score": 57.8  
29:      }  
30:    ]  
31:  }  
32:  */  
33:  ?>  

Menangani Kesalahan Selama Encoding dan Decoding

Cara menggunakan json array decode php



Format JSON mengharuskan kita untuk mengikuti seperangkat aturan khusus untuk encoding dan decoding kode string yang tepat. Misalnya, nama dan nilai harus diapit oleh tanda kutip ganda dan tidak boleh ada tanda koma setelah pasangan nama-nilai. Fungsi json_last_error_msg() dapat membantu kalian mencari tahu apa jenis kesalahan yang kalian peroleh sehingga kalian bisa mengambil langkah yang tepat. Berikut adalah contoh yang sangat mendasar:

1:    

Kesimpulan

Dalam tutorial kali ini, kalian sudah belajar cara membaca data JSON dari file atau string di PHP. Kita juga mempelajari cara mengonversi JSON tersebut menjadi array dan melintasinya untuk mengekstrak informasi yang kita inginkan. 

Kalian sekarang seharusnya bisa mendapatkan informasi dari JSON dalam file di mana kalian tidak mengetahui semua kunci (key) dalam pasangan nilai kunci. 

Dalam dua bagian terakhir, kita membahas bagaimana kalian bisa merangkai data sebagai JSON di PHP dan kesalahan yang mungkin kalian temui selama proses encoding dan decoding.

Mudah-mudahan, ini akan menjawab semua pertanyaan kalian tentang encoding dan decoding JSON di PHP.

Jika ada pertanyaan mengenai postingan kali ini, kalian bisa meninggalkan pertanyaan kalian di kolom komentr di bawah yah, See You Next Time :).

JSON decode untuk apa?

Fungsi json_decode() digunakan untuk memecahkan kode atau mengubah objek JSON menjadi objek PHP.

Apa itu JSON pada PHP?

JSON merupakan singkatan dari JavaScript Object Notation. JSON sendiri dapat diartikan dengan turunan JavaScript yang digunakan dalam transfer dan penyimpanan data yang fungsinya untuk memfasilitasi pertukaran data antar bahasa pemrograman.

Untuk apa JSON digunakan khususnya pada pemrograman Android?

JSON sebagai format untuk bertukar data client dan server atau antar aplikasi. Contoh: RESTful API; – JSON sebagai tempat menyimpan data, contoh: Database Mongodb; – JSON digunakan untuk menyimpan konfigurasi project, contoh: file composer.

Manakah yang merupakan elemen dari JSON?

Ada dua elemen inti dari objek JSON, yaitu Key dan Value. Key harus dalam bentuk string. Key berisi urutan karakter yang diapit oleh tanda kutip. Value adalah tipe data JSON yang valid.