PHP และ JSON
JSON คืออะไร?
JSON ย่อมาจาก JavaScript Object Notation และเป็นไวยากรณ์สำหรับการจัดเก็บและแลกเปลี่ยนข้อมูล
เนื่องจากรูปแบบ JSON เป็นรูปแบบข้อความ จึงสามารถส่งไปยังและจากเซิร์ฟเวอร์ได้อย่างง่ายดาย และใช้เป็นรูปแบบข้อมูลในภาษาการเขียนโปรแกรมใดๆ
PHP และ JSON
PHP มีฟังก์ชันในตัวเพื่อจัดการ JSON
ขั้นแรก เราจะดูสองฟังก์ชันต่อไปนี้:
- json_encode()
- json_decode()
PHP - json_encode()
ฟังก์ชันjson_encode()ใช้ในการเข้ารหัสค่าเป็นรูปแบบ JSON
ตัวอย่าง
ตัวอย่างนี้แสดงวิธีการเข้ารหัสอาร์เรย์ที่เชื่อมโยงไปยังวัตถุ JSON:
<?php
$age = array("Peter"=>35, "Ben"=>37, "Joe"=>43);
echo json_encode($age);
?>
ตัวอย่าง
ตัวอย่างนี้แสดงวิธีเข้ารหัสอาร์เรย์ที่จัดทำดัชนีลงในอาร์เรย์ JSON:
<?php
$cars = array("Volvo", "BMW", "Toyota");
echo json_encode($cars);
?>
PHP - json_decode()
ฟังก์ชันjson_decode()ใช้เพื่อถอดรหัสวัตถุ JSON เป็นวัตถุ PHP หรืออาร์เรย์ที่เชื่อมโยง
ตัวอย่าง
ตัวอย่างนี้ถอดรหัสข้อมูล JSON เป็นวัตถุ PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj));
?>
ฟังก์ชันjson_decode()ส่งกลับวัตถุโดยค่าเริ่มต้น ฟังก์ชันjson_decode()มีพารามิเตอร์ตัวที่สอง และเมื่อตั้งค่าเป็นจริง วัตถุ JSON จะถูกถอดรหัสเป็นอาร์เรย์ที่เชื่อมโยง
ตัวอย่าง
ตัวอย่างนี้ถอดรหัสข้อมูล JSON เป็นอาร์เรย์เชื่อมโยง PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
var_dump(json_decode($jsonobj,
true));
?>
PHP - การเข้าถึงค่าถอดรหัส
ต่อไปนี้คือตัวอย่างสองตัวอย่างวิธีเข้าถึงค่าที่ถอดรหัสจากอ็อบเจ็กต์และจากอาเรย์ที่เชื่อมโยง:
ตัวอย่าง
ตัวอย่างนี้แสดงวิธีเข้าถึงค่าจากวัตถุ PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
echo $obj->Peter;
echo $obj->Ben;
echo $obj->Joe;
?>
ตัวอย่าง
ตัวอย่างนี้แสดงวิธีเข้าถึงค่าจากอาร์เรย์เชื่อมโยง PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$arr = json_decode($jsonobj, true);
echo $arr["Peter"];
echo $arr["Ben"];
echo $arr["Joe"];
?>
PHP - วนซ้ำผ่านค่า
คุณยังสามารถวนซ้ำค่าด้วยการ วนรอบ foreach() :
ตัวอย่าง
ตัวอย่างนี้แสดงวิธีการวนซ้ำค่าของวัตถุ PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$obj = json_decode($jsonobj);
foreach($obj
as $key => $value) {
echo $key . " => " . $value . "<br>";
}
?>
ตัวอย่าง
ตัวอย่างนี้แสดงวิธีการวนรอบค่าของอาร์เรย์เชื่อมโยง PHP:
<?php
$jsonobj = '{"Peter":35,"Ben":37,"Joe":43}';
$arr = json_decode($jsonobj, true);
foreach($arr as $key => $value) {
echo $key . " => " . $value
. "<br>";
}
?>