Create JSON dan Parsing JSON Menggunakan PHP

Buat: 01/28/2013 - 21:46
Create  JSON  dan Parsing JSON Menggunakan PHP

Berkenalan dengan JSON

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan, mudah dibaca dan ditulis oleh manusia, serta mudah diterjemahkan dan dibuat (generate) oleh komputer. Format ini dibuat berdasarkan bagian dari Bahasa Pemprograman JavaScript, Standar ECMA-262 Edisi ke-3 - Desember 1999. JSON merupakan format teks yang tidak bergantung pada bahasa pemprograman apapun karena menggunakan gaya bahasa yang umum digunakan oleh programmer keluarga C termasuk C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaran-data. Keterangan Lebih lanjut bias di baca di : http://www.json.org/json-id.html

Contoh JSON :

{"posts":[
            {
                "headline":"The Headline for post 1",
                "body":"Lorem ipsum dolor sit amet consectetur adipiscing elit.",
                "posted_on":"Feb 11, 2013",
                "posted_by":"username"
            },
            {
                "headline":"The Headline for post 2",
                "body":"Lorem ipsum dolor sit amet consectetur adipiscing elit.",
                "posted_on":"Feb 12, 2013",
                "posted_by":"anotheruser"
            }
]}

 

Create JSON

Kali ini kita akan membuat JSON dari Hasil Query.  Selanjut nya kita buat dulu table nya,
sebagai contoh :

CREATE TABLE `artikel` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `headline` varchar(100) DEFAULT NULL,
  `body` text,
  `postdate` int(11),
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=latin1;

 

Contoh Data :

INSERT INTO artikel(id,headline,body,postdate)
VALUES('1','The Headline for post 1','Lorem ipsum dolor sit posting 1','1351570931');

INSERT INTO artikel(id,headline,body,postdate)
VALUES('2','The Headline for post 2','Lorem ipsum dolor sit posting 2','1351570931');

INSERT INTO artikel(id,headline,body,postdate)
VALUES('3','The Headline for post 3','Lorem ipsum dolor sit posting 3','1351570931');

 

Selanjut nya buat file baru dengan nama “creat_json.php” kemudian buat code PHP untuk menampilkan data dari database :

<?php
//Koneksi
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("test") or die(mysql_error());
  
//Create JSON
$Q = mysql_query("SELECT * FROM artikel")or die(mysql_error());
if($Q){
         $posts = array();
              if(mysql_num_rows($Q))
              {
                     while($post = mysql_fetch_assoc($Q)){
                             $posts[] = $post;
                     }
              }  
              echo json_encode(array('artikel'=>$posts));                     
     }
     ?>

Data akan di tampilkan dalam bentuk array associative  dan untuk menjadikan Format JSON kita menggunakan Fungsi json_encode() .

  • Objek JSON terdapat diantara tanda {  dan  }
  • Array JavaScript terdapat diantara tanda [ dan ]

Penampakan dari code di atas akan tampak seperti ini :

{"artikel":[
                   {
                          "id":"1",
                          "headline":"The Headli",
                           "body":"Lorem ipsum dolor sit posting1",
                           "postdate":"1351570931"
                    },
                    {     
                            "id":"2",
                            "headline":"The Headli",
                            "body":"Lorem ipsum dolor sit posting2",
                            "postdate":"1351570931"},
                      {
                             "id":"3",
                             "headline":"The Headli",
                             "body":"Lorem ipsum dolor sit posting 3",
                             "postdate":"1351570931"
                        }
                      ]
}

 

Read dan Parsing JSON

Untuk membaca/mendapatkan data dari  File (create_json.php) yang sudah kita buat tadi kita akan menggunakan fungsi cURL, apa itu cURL? temen-temen bisa membaca tulisan penulis sebelum nya di http://phpindonesia.net/artikel/grabbing-content-website-menggunakan-curl.

Buat File baru berinama “parsing_json.php” berikut Code nya :

     <?php
     //jSON URL which should be requested
     $json_url = 'http://localhost/folderProjecAnda/create_json.php';
     $ch = curl_init( $json_url );
     $options = array(
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
            CURLOPT_POSTFIELDS => $json_string
     );
     curl_setopt_array( $ch, $options ); // Setting curl options
     echo $result =  curl_exec($ch); // Getting jSON result string
     ?>

Selanjut nya kita akan Meng-convert  JSON tadi menjadi sebuah variabel PHP dengan fungsi json_decode().

$decode = json_decode($result, true);
print_r($decode);

sehingga klo kita prin_r akan berbentuk Array sebagai berikut :

Array (
       [artikel] => Array (
                           [0] => Array (
                                         [id] => 1
                                         [headline] => The Headline 1
                                         [body] => Lorem ipsum dolor sit posting 1
                                         [postdate] => 1351570931
                                         )
                           )
)

Berikut contoh script untuk mem-parsing Array di atas :

echo $decode['artikel'][0]['headline'];
//akan menghasilkan The Headline 1
echo $decode['artikel'][0]['body'];
//Lorem ipsum dolor sit posting 1

Kita bisa meletakkan di dalam perulangan, berikut contoh script nya :

foreach($decode['artikel'] as $row){
       echo "<div id='content'>";
       echo "<p id='judul'>".$row['headline'] ."</p>";
       echo "<p id='isi'>".$row['body'] ."</p>";
       echo "<p id='tanggal'>".$row['postdate'] ."</p>";
       echo "<div>";
}

Code Lengkap untuk file “parsing_json.php”  sebagai Berikut :

<?php
//JSON URL which should be requested
$json_url = 'http://localhost/cobacoba/JSON/create_json.php';
$ch = curl_init( $json_url );
$options = array(
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HTTPHEADER => array('Content-type: application/json') ,
        CURLOPT_POSTFIELDS => $json_string
);
curl_setopt_array( $ch, $options ); //Setting curl options
$result =  curl_exec($ch); //Getting jSON result string
$decode = json_decode($result, true);
foreach($decode['artikel'] as $row){
        echo "<div id='content'>";
        echo "<p id='judul'>".$row['headline'] ."</p>";
        echo "<p id='isi'>".$row['body'] ."</p>";
        echo "<p id='tanggal'>".$row['postdate'] ."</p>";
        echo "<div>";
}
?>


 

Screen shoot hasil Akhir dari Code di atas :


 

Untuk sentuhan terakhir kita akan mempercantik dengan CSS.

<style>
h3{
   margin: 0;
   font-family: inherit;
   font-weight: bold;
   color: #009ad9;
   text-rendering: optimizelegibility; 
}
.tanggal {
  color: #999999;
  margin:0;
  font-size:11px;
  padding: 0 0 0 15px;
  margin: 0 0 10px;
  border-left: 5px solid #eeeeee;
}
#isi{
   border-bottom:1px solid #009ad9;
   margin-top:5px;
   padding-bottom:5px;
}
</style>

 

Penampakan Terakhir

 


 

About Author

Tentang PHP Indonesia

PHP Indonesia adalah sebuah komunitas untuk semua orang yang mencintai PHP. Fokus utama kami adalah pemrograman menggunakan bahasa PHP, namun tidak menutup kemungkinan pembahasan yang mencakup keseluruhan LAMP stack. Topik bisa dari pemrograman PHP, penanganan memcached, optimasi database, konfigurasi server, tuning server web, application deployment, framework PHP, hosting pilihan dan sebagainya.

Petunjuk Penulisan

Berikut ini adalah beberapa petunjuk penulisan artikel. Petunjuk dibuat bukan untuk membatasi tetapi demi menjaga kualitas artikel yang terpublikasi di situs ini. Selain itu, keseragaman gaya bahasa dapat menjaga readibilitas (tingkat keterbacaan) sehingga pembaca akan lebih nyaman dalam membaca artikel di situs ini.