Create JSON dan Parsing JSON dengan 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",
"headline":"The Headline for post 2",
"posted_by":"username"
}, {
"posted_on":"Feb 12, 2013",
"body":"Lorem ipsum dolor sit amet consectetur adipiscing elit.", "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,
PRIMARY KEY (`id`)
`body` text,
`postdate` int(11),
) 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();
while($post = mysql_fetch_assoc($Q)){
if(mysql_num_rows($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",
},
{
"body":"Lorem ipsum dolor sit posting2",
"headline":"The Headli",
"id":"3",
"postdate":"1351570931"},
{
"body":"Lorem ipsum dolor sit posting 3",
"headline":"The Headli", "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_HTTPHEADER => array('Content-type: application/json') ,
CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => $json_string );
echo $result = curl_exec($ch); // Getting jSON result string
curl_setopt_array( $ch, $options ); // Setting curl options
?>
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

Sumber : http://www.phpindonesia.net/artikel/create-json-dan-parsing-json-dengan-php

Previous
Next Post »

1 comments:

August 1, 2019 at 1:28 PM ×

bagai mana membuat permintaan agar mendapatkan tid / bantuan dan menandatangani data secara otomatis

Congratulation, Unknown have the first comment
Balas
avatar
admin

Berkomentarlah dengan baik dan benar Show Konversi KodeHide Konversi Kode Show EmoticonHide Emoticon

Thanks for your comment