-
October 10th, 2019, 12:55
#1
عضو انجمن
توابع JSON در php
JSON شیوهای استاندارد برای نگهداری، انتقال و نمایش اطلاعات است. این شیوه با در نظر گرفتن سهولت خوانایی و سهولت استفاده طراحی شده است.
زبان PHP به صورت پیشفرض حاوی دستوراتی برای ایجاد و پردازش JSON است. این دو تابع عبارتند از: json_encode و json_decode.
json_encode
این تابع یک متغیر حاوی اطلاعات را در php دریافت میکند و آن را به رشتهای حاوی عبارتهای JSON برمیگرداند.
متغیر ارسال شده به این دستور میتواند هر نوع دادهای به جز resource را در خود نگهداری کند.
مقدار بازگشتی این تابع در صورت عدم موفقیت مقدار false خواهد بود که برای مقایسهی آن بهتر است از علامت سه مساوی «===» استفاده کنید.
کد:
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
مقدار بازگشتی تابع فوق برابر رشتهی زیر خواهد بود:
کد:
{"a":1,"b":2,"c":3,"d":4,"e":5}
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)
}
codebox.ir | تلفن: ٠٢١-٩١٦٩٠٤٢١ | آدرس : شیراز، شهرک خبازان، خیابان شهید سعید ماهر، دفتر کدباکس
ما را دنبال کنید: ID : @codebox_ir
-
تعداد تشکر ها از CodeBox به دلیل پست مفید
-
October 10th, 2019 12:55
# ADS
-
October 11th, 2019, 02:45
#2
عضو جدید
پاسخ : توابع JSON در php

نوشته اصلی توسط
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));?>
-