Awalnya saya ragu untuk memposting pembuatan JSON dengan CodeIgniter, tapi mungkin masih ada yang membutuhkan. Nah saya lebih terbiasa dengan FrameWork CodeIgniter oleh karena itu saya membuatnya dengan Framework ini.
Sebagai kasus saya ingin membuat JSON untuk dipanggil aplikasi android xamarin. Misalkan saya ingin mengambil data detail dari sebuah lokasi wisata. Untuk table MySQL nya adalah sebagai berikut.
Saya telah memiliki 18 field pada tabel database dengan naa tb_nama_wisata. Kemudian kita masukan beberapa data sebagai berikut.
Pada Framework CodeIgniter saya membutuhkan sebuah Model dengan nama M_wisata.php
M_wisata.php
<?php class M_wisata extends CI_Model{ var $tabel = 'tb_nama_wisata'; function tampil_data(){ return $this->db->get('tb_nama_wisata'); } function get_data($where,$table){ return $this->db->get_where($table,$where); } }
Kemudian Buatlah sebuah Controller dengan nama Api.php
Api.php
//Generate JSON untuk wisata berdasarkan id function getWisataDetail($id) { $where = array('id' => $id); $url = 'https://banyu.center/pariwisatajateng/assets/images/wisata/'; $harga = 'Harga Tiket :'; $json_data = $this->m_wisata->get_data($where,'tb_nama_wisata')->result(); $arr = array(); foreach ($json_data as $result) { $arr[] = array( 'id' => $result->id, 'id_kabupaten' => $result->id_kabupaten, 'id_jenis_wisata' => $result->id_jenis_wisata, 'nama_wisata' => $result->nama_wisata, 'harga_tiket' => $harga.$result->harga_tiket, 'jam_buka'=> $result->jam_buka, 'jam_tutup'=> $result->jam_tutup, 'alamat'=> $result->alamat, 'no_telp'=> $result->no_telp, 'no_wa'=> $result->no_wa, 'instagram'=> $result->instagram, 'facebook'=> $result->facebook, 'twitter'=> $result->twitter, 'email'=> $result->email, 'website'=> $result->website, 'foto' => $url.$result->foto, 'video'=> $result->video, 'keterangan'=> $result->keterangan ); } $data = json_encode($arr); echo "{"detail_wisata":" . $data . "}"; }
Jika kalian panggil di Browser dengan url
http://namawebsitemu.com/api/getWisataDetail/2 maka akan menghasilkan data JSON sebagai berikut
Lalu Bagaimana jika membuat Nested JSON atau JSOn bersarang dengan CodeIgniter. Caranya cukup merubah generate loppingnya saja. Misalkan saya buat sebuah fungsi lagi dengan nama
getWisataDetailSample($id)
//Nested JSON function getWisataDetailSample($id) { $where = array('id' => $id); $url = 'https://banyu.center/pariwisatajateng/assets/images/wisata/'; $harga = 'Harga Tiket :'; $datax = $this->m_wisata->get_data($where,'tb_nama_wisata')->result(); $datas = array(); foreach ($datax as $results) { $arrs[] = array( 'instagram'=> $results->instagram, 'facebook'=> $results->facebook, 'twitter'=> $results->twitter, 'email'=> $results->email, 'website'=> $results->website ); } $datay = json_encode($arrs); $json_data = $this->m_wisata->get_data($where,'tb_nama_wisata')->result(); $arr = array(); foreach ($json_data as $result) { $arr[] = array( 'id' => $result->id, 'id_kabupaten' => $result->id_kabupaten, 'id_jenis_wisata' => $result->id_jenis_wisata, 'nama_wisata' => $result->nama_wisata, 'harga_tiket' => $harga.$result->harga_tiket, 'jam_buka'=> $result->jam_buka, 'jam_tutup'=> $result->jam_tutup, 'alamat'=> $result->alamat, 'no_telp'=> $result->no_telp, 'no_wa'=> $result->no_wa, 'sosial_media' => json_decode($datay), 'foto' => $url.$result->foto, 'video'=> $result->video, 'keterangan'=> $result->keterangan ); } $data = json_encode($arr); echo "{\"detail_wisata\":" . $data . "}"; }
Maka hasilnya adalah sebagai berikut
Selamat mencoba
Salam
No comments:
Post a Comment
Mohon melakukan komentar dengan bahasa yang mudah dipahami, santun dan dengan bahasa yang baik.