
نوشته اصلی توسط
CodeBox
json_decode
تابع دوم وظیفهای برعکس تابع json_encode دارد. این تابع یک رشتهی حاوی عبارتهای JSON را دریافت میکند و آن را به متغیر php تبدیل میکند.
بر خلاف Javascript که در رعایت اسنانداردها بسیار منعطف عمل میکند، این دستور برای عملکرد صحیح، نیاز دارد تا یک عبارت JSON با رعایت دقیق استانداردها دریافت کند.
کد:
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
?>
عبارت خروجی در قطعه کد بالا به شکل زیر خواهد بود:
کد:
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
برا تکمیل این بخش باید عرض کنم ان تابع بشکل تک ورودی دقیقا برعکس عمل نمیکنه و همونطوری که خودتونم نوشتید stdClass برمیگردونه
برای اینکه کاملا برعکس عمل کنه (یعنی یک جیسون بگیره و یک آرایه php برگردونه) باید بشک زیر باشه
کد PHP:
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json,true));?>