ในบทนี้เราจะแนะนำวิธีใช้ภาษา PHP เพื่อเข้ารหัสและถอดรหัสออบเจ็กต์ JSON
ส่วนขยาย JSON มีอยู่แล้วใน php5.2.0 ขึ้นไป
| การทำงาน | อธิบาย |
|---|---|
| json_encode.json_encode | ตัวแปรเข้ารหัส JSON |
| json_decode | ถอดรหัสสตริงที่จัดรูปแบบ JSON และแปลงเป็นตัวแปร PHP |
| json_last_error | ส่งกลับข้อผิดพลาดล่าสุดที่เกิดขึ้น |
PHP json_encode() ใช้เพื่อเข้ารหัสตัวแปร JSON ฟังก์ชันนี้จะส่งคืนข้อมูล JSON หากดำเนินการสำเร็จ มิฉะนั้นจะส่งคืน FALSE
สตริง json_encode ( $value [, $options = 0 ] )
value : ค่าที่จะเข้ารหัส ฟังก์ชันนี้ใช้ได้กับข้อมูลที่เข้ารหัส UTF-8 เท่านั้น
ตัวเลือก : มาสก์ไบนารีประกอบด้วยค่าคงที่ต่อไปนี้: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT
ตัวอย่างต่อไปนี้สาธิตวิธีการแปลงอาร์เรย์ PHP เป็นข้อมูลรูปแบบ JSON:
<?php $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); echo json_encode($arr) ;?>ผลลัพธ์ของการรันโค้ดข้างต้นคือ:
{"ก":1,"ข":2,"ค":3,"ง":4,"อี":5}ตัวอย่างต่อไปนี้สาธิตวิธีการแปลงออบเจ็กต์ PHP เป็นข้อมูลรูปแบบ JSON:
<?php class Emp { public $name = ""; public $hobbies = ""; public $birthdate = ""; } $e = ใหม่ Emp(); $e->name = "sachin"; งานอดิเรก = "กีฬา"; $e->วันเกิด = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p"); date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03")); echo json_encode($e);?>ผลลัพธ์ของการรันโค้ดข้างต้นคือ:
{"ชื่อ": "sachin", "งานอดิเรก": "กีฬา", "วันเกิด": 08/05/1974 12:20:03 น."}ฟังก์ชัน PHP json_decode() ใช้เพื่อถอดรหัสสตริงที่จัดรูปแบบ JSON และแปลงเป็นตัวแปร PHP
ผสม json_decode ($json_string [,$assoc = false [, $ความลึก = 512 [, $options = 0 ]]])
json_string : สตริง JSON ที่จะถอดรหัส ต้องเป็นข้อมูลที่เข้ารหัส UTF-8
assoc : เมื่อพารามิเตอร์นี้เป็น TRUE อาร์เรย์จะถูกส่งกลับ และเมื่อเป็น FALSE วัตถุจะถูกส่งกลับ
deep : พารามิเตอร์ประเภทจำนวนเต็ม ซึ่งระบุความลึกของการเรียกซ้ำ
ตัวเลือก : ไบนารีมาสก์ ปัจจุบันรองรับเฉพาะ JSON_BIGINT_AS_STRING เท่านั้น
ตัวอย่างต่อไปนี้สาธิตวิธีถอดรหัสข้อมูล JSON:
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); (json_decode($json, จริง));?>ผลลัพธ์ของการรันโค้ดข้างต้นคือ:
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5)}array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => อินท์(3) ["d"] => int(4) ["e"] => int(5)}