ขึ้นอยู่กับความต้องการในมือ
JSON เร็วกว่าเมื่อเปรียบเทียบกับการทำให้เป็นอนุกรมของ PHP เว้นแต่จะเป็นไปตามเงื่อนไขต่อไปนี้
- อาร์เรย์ที่ซ้อนกันอย่างลึกจะถูกเก็บไว้
- อ็อบเจ็กต์ที่เก็บไว้ต้อง unserialized กับคลาสที่เหมาะสม
- การโต้ตอบเกิดขึ้นระหว่าง PHP เวอร์ชันเก่าที่ไม่สนับสนุน json_decode
บรรทัดด้านล่างของรหัสสามารถใช้เพื่อจัดเก็บอาร์เรย์ PHP โดยใช้ json_encode−
json_encode($array, JSON_UNESCAPED_UNICODE)
JSON ไม่ได้จัดเก็บคลาสดั้งเดิมของวัตถุไว้ที่ใด แต่สามารถกู้คืนได้เป็นอินสแตนซ์ของคลาสที่เป็นของ stdClass
เหตุใดจึงใช้ json_encode แทนการทำให้เป็นอนุกรม
- JSON พกพาสะดวกกว่าเมื่อเปรียบเทียบกับการทำให้เป็นอนุกรม
- ไม่สามารถใช้คุณสมบัติของ __sleep() และ __wakeup() โดยใช้ JSON
- โดยค่าเริ่มต้น คุณสมบัติสาธารณะจะถูกจัดลำดับด้วย JSON (หากเวอร์ชัน PHP เป็น>=5.4 JsonSerializable สามารถใช้เพื่อเปลี่ยนพฤติกรรมได้)
ตัวอย่าง
<?php // Array is declared $value = array( "name"=>"name_me", "email"=>"myemail.com" ); // json_encode() function is used $json = json_encode($value); // Displaying output echo($json); ?>
ผลลัพธ์
สิ่งนี้จะทำให้เกิดผลลัพธ์ดังต่อไปนี้−
{"name":"name_me","email":"myemail.com"}