آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش JSON در PHP

دوره های مرتبط با این مقاله

JSON در PHP

مبحث حاضر نحوه ی encode/decode اشیا JSON را با زبان برنامه نویسی سمت سرور PHP آموزش می دهد. آموزش را با آماده سازی محیط برای شروع برنامه نویسی با PHP آغاز می کنیم.

محیط

از ویرایش 5.2.0 به بعد زبان PHP، فایل های با پسوند JSON به صورت پیش فرض و خودکار، فشرده (bundle) شده و به زبان PHP ترجمه (Compile) می شود.

توابع JSON

شرح کاربرد
تابع
مقدار پاس داده شده را به فرمت JSON تبدیل می کند. در خروجی نسخه ی تبدیل شده به JSON از مقدار ورودی را برمی گرداند.
json_encode
یک رشته از نوع JSON را به عنوان ورودی گرفته و در خروجی یک متغیر PHP برمی گرداند.
json_decode
آخرین خطای رخ داده حین decode / encode را برمی گرداند.
json_last_error

تبدیل مقداری به فرمت JSON در PHP (json_encode)

این تابع برای تبدیل ورودی در PHP به JSON بکار می رود. تابع مذکور در صورت موفقیت در تبدیل یک رشته ی کدگذاری با تبدیل شده به JSON برمی گرداند و در صورت عدم موفقیت مقدار FALSE را بر می گرداند.

ساختار نگارشی (Syntax)

                        string json_encode ( $value [, $options = 0 ] )

پارامترهای ارسالی به تابع

  1. Value –مقداری که قرار است به json تبدیل شود (می تواند هر نوعی به جز resource باشد). این تابع تنها با داده های کدگذاری شده به کاراکترهای UTF-8 کار می کند.
  2. options –این پارامتر اختیاری یک bistmask متشکل از JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT می باشد (bitmask مجموعه ای از بولی های سبک و کوچک است و برای دسترسی به بیت های خاصی از یک بایت از داده بکار می رود).
مثال:

نمونه ی زیر نحوه ی تبدیل یک آرایه به JSON را با زبان PHP نمایش می دهد:

<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}

مثال زیر نحوه ی تبدیل اشیا PHP به فرمت JSON را نمایش می دهد:

<php
  class Emp {
     public $name = "";
     public $hobbies = "";
     public $birthdate = "";
  }               
  $e = new Emp();
  $e->name = "sachin";
  $e->hobbies = "sports";
  $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
  $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
  echo json_encode($e);
?>

با اجرای کد فوق نتیجه ی زیر حاصل می شود:

                        {"name":"sachin","hobbies":"sports","birthdate":"08\/05\/1974 12:20:03 pm"}

تبدیل رشته ی JSON به متغیر PHP (json_decode)

تابع ()json_decode برای تبدیل رشته ی JSON به متغیر PHP بکار می رود.

ساختارنگارشی (Syntax)

                        mixed json_decode ($json [,$assoc = false [, $depth = 512 [, $options = 0 ]]])

لیست پارامترهای ورودی

  1. json_string: رشته از نوع JSON که قرار است به متغیر PHP تبدیل شود. این رشته باید فقط با کاراکترهای UTF-8 کدگذاری شده باشد.
  2. assoc –پارامتر از نوع بولی که اگر بر روی TRUE تنظیم شده باشد، اشیا بازگشتی به آرایه های associative (آرایه های ربطی) تبدیل می شوند.
  3. depth- یک پارامتر از نوع عدد صحیح که عمق recursion (بازگشت) را مشخص می کند.
  4. options –یک bitmask از نوع عدد صحیح از JSON decode است. در حال حاضر تنها JSON_BIGINT_AS_STRING پشتیبانی می شود.
مثال:

نمونه ی زیر نحوه ی decode اشیا JSON و تبدیل آن ها به یک متغیر متعارف PHP را نمایش می دهد:

<php
  $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
  var_dump(json_decode($json));
  var_dump(json_decode($json, true));
?>

خروجی زیر را تولید می کند:

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"] =>int(3)
  ["d"] =>int(4)
  ["e"] =>int(5)
}

کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده بوده و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.

  • 9132
  •    4
  • تاریخ ارسال :   1395/05/19

دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .