آموزش تبدیل JSON به آرایه در php

  • آپدیت شده در تاریخ

آموزش تبدیل JSON به آرایه در php

در این بخش از آموزش PHP قصد داریم به شما نحوه تبدیل JSON به آرایه در php توسط تابع json_decode و به همراه مثال های کاربری نشان بدیم.

همچنین محدودیت و قوانین توابع کار با رشته جیسون (json) را با مثال های ساده تبدیل JSON به آرایه در php را مرور می کنیم تا جواب سوال چگونه آرایه های PHP را به JSON تبدیل کنیم؟ را بگیرید.

 

تبدیل JSON به آرایه در php

مثال زیر رشته JSON شامل نام حیوانات و تعداد آن است. خروجی تبدیل این جیسون, آرایه انجمنی (Associative Arrays) خواهد بود (کلید یا ایندکس نام حیوانات و مقدار آن تعداد است )

ما از تابع json_decode() در PHP به همراه پارامتر بولین true استفاده می کنیم تا خروجی ما یک آرایه باشد (اگر false بزارید خروجی یک آبجکت بصورت stdClass خواهد بود)

 

خروجی

در دیاگرام زیر می بینید که ورودی ما به تابع json_decode() یک رشته جیسون است و خروجی شئ را برگشت می دهد.

آموزش تبدیل JSON به آرایه در php

تابع json_decode() در PHP

این همان تابع اصلی برای تبدیل JSON به آرایه در php است و سینتکس آن بصورت زیر می باشد :

 

  • $json – رشته جیسون ورودی
  • $associative – ورودی بولین که مشخص می کند فرمت خروجی آرایه یا آبجکت باشد
  • $depth – محدودیت دیکد کردن تو در تو
  • $flag – ثابت از پیش تعیین شده که مشخص می کند مثلا در زمان خطا در تبدیل JSON به آرایه در php چه کاری انجام شود

اطلاعات بیشتر در مورد تابع json_decode() در PHP را می توانید از لینک قبلی بدست آورید.

 

تبدیل رشته JSON به شئ (Object)

در این کد ما مقدار true را بعنوان پارامتر دوم به تابع json_decode پاس نمی دهیم و خروجی به جای آرایه, یک آبجکت خواهد بود.

خروجی

اشتباه رایج در تبدیل JSON به آرایه در php

در مثال زیر ما یک رشته جیسون معتبر در جاواسکریپت نه PHP را قرار دادیم. مشکل اصلی استفاده از تک کوتیشن است که باید به دابل کوتیشن تغییر داده شود.

 

تبدیل JSON با اعداد بزرگ

این کار با ست کردن پارامتر bitmask که یکی از ثابت های تعریف شده جیسون هست, قابل انجام است.

ثابت JSON_BIGINT_AS_STRING برای تبدیل رشته JSON با داده های عددی بزرگ استفاده می شود.

 

خروجی

 

هندل کردن خطاهای تبدیل JSON به آرایه در php

تابع json_last_error() برای برگشت دادن آخرین خطای ایجاد شده استفاده می شود.

مثال زیر نحوه هندل کردن خطاهای مختلف در هنگام تبدیل JSON به آرایه در php را نشان می دهد:

 

تبدیل جیسون به آرایه (Array) و آرایه به جیسون (JSON) برابر نیست

 

خروجی

["No","Yes"]

 

آبجکت PHP حالا به آرایه PHP تبدیل شده است و مطمئنم انتظار این را نداشتید.

Encode -> Decode -> Encode

کد بالا داده در شکل اولیه خود برگشت نمی دهد.

خروجی دیکد کردن آرایه های PHP و اینکد کردن آرایه ها یکسان نیستند. اما, خروجی دیکد شئ stdClass و اینکد شئ stdClass همیشه برابر هستند.

بنابراین اگر قصد دارید تبدیل چرخه ای بین آرایه های PHP و رشته های JSON را انجام بدید, اول آرایه های PHP را به شئ تبدیل کنید سپس آن را جیسون کنید.

اگر میخواهید نحوه دریافت خروحی JSON از API را با استفاده از درخواست های CURL در PHP یاد بگیرید آموزش زیر را ببینید :

ارسال و دریافت jSON توسط cURL در php

جمع بندی آموزش تبدیل JSON به آرایه در php

در این آموزش کامل نحوه تبدیل رشته جیسون به آرایه و آبجکت در PHP را یاد گرفتید و مطمین باشید با وجود اینکه بالای ۹۰درصد API ها از خروجی جیسون برای دادن پاسخ به درخواست ها استفاده می کنند, یادگیری این موارد بسیار در روند توسعه و نوشتن اسکریپت ها به شما کمک می کند.

امیدوارم در این بخش آموزش PHP, از آموزش تبدیل JSON به آرایه در php نهایت استفاده را برده باشید.

هر سوالی داشتید، از قسمت نظرات ارسال کنید. سریعا ، پاسخگوی سوالات شما هستیم.

موفق و پیروز باشید

حسن شفیعی توسعه دهنده وب و موبایل مدیر سایت علاقه خاصی به برنامه نویسی وب و موبایل دارم و هر روز تلاش می کنم به این حوزه مسلط تر شوم و اطلاعاتم را به شکل کاربردی برای علاقه مندان در وب به اشتراک بگذارم. اگر نیاز به برنامه نویس برای انجام پروژه و نوشتن اسکریپت های سمت وب, اپلیکیشن های اندروید و ios, پیدا کردن راه حل توسعه و غیره داشتید حتما از طریق تماس با ما/ واتساپ/ تلگرام بهم پیام بدید. برایتهیه هاست مطمین و پرسرعت کلیک کنید
مطالب زیر را حتما بخوانید
دیدگاه کاربران (۲)

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

  1. محمدحسین پدرام ۱۸ فروردین ۱۴۰۲

    سلام و درود .
    پاسخ دریافتی از سایت لینک دانلود میباشد . نحوه ذخیره لینک فیلم یا عکس به جه صورت هست . ممکنه راهنمایی بفرمایید ؟

    پاسخ
    1. حسن شفیعی ۲۰ فروردین ۱۴۰۲

      سلام.
      نیاز به دیتابیس دارید که لینک ها رو ذخیره کنید و بخش کار با php mysql رو یاد بگیرید
      https://netparadis.com/phpmyadmin-create-mysql-database

      پاسخ
دوره های آموزشی