تو دنیای امروز برنامه نویسی، تبادل داده بین سیستم ها به یکی از بخش های جدانشدنی توسعه نرم افزار تبدیل شده. برای مدت ها XML گزینه اصلی توسعه دهنده ها بود، اما با گسترش وب و نیاز به ساختار های ساده و سبک تر، JSON وارد شد و خیلی زود جای XML رو گرفت.
JSON دیگه فقط یه فرمت معمولی برای ذخیره داده ها نیست و حالا نقش یک زبان مشترک رو داره که سرویس ها و سیستم های مختلف باهاش حرف میزنن. تقریباً همه زبان های برنامه نویسی، فریم ورک ها و API ها هم از اون پشتیبانی می کنن.
در این مقاله به صورت جامع بررسی می کنیم:
-
مبانی JSON و نحوه استفاده در PHP
-
نکات فنی و امنیتی که اغلب نادیده گرفته می شوند
-
آینده JSON در اکوسیستم PHP

JSON چیه و ساختارش چطوره؟
JSON یه فرمت متنی ساده برای ذخیره و تبادل داده ست. داده ها به شکل کلید-مقدار نوشته میشن و میتونن شامل آرایه ها و آبجکت های تو در تو باشن:
مثال ساده:
{
"Student": [
{ "Name": "Riya", "Roll": 7058, "Subject": "Java" },
{ "Name": "Anubha", "Roll": 7059, "Subject": "SAP" }
]
}
اینجا اطلاعات هر دانش آموز داخل یه شیء هست و همشون توی آرایه ای به اسم Student ذخیره شدن.
مراحل تجزیه JSON در PHP
1- خواندن محتوای فایل JSON
ساده ترین راه استفاده از file_get_contacts() هست:
$json = file_get_contents('my_data.json');
این خط کل محتوای فایل رو به صورت یه رشته برمی گردونه.

نکته: همیشه مطمئن بشید فایل با UTF-8 ذخیره شده باشه. وگرنه کاراکترهای فارسی/خاص بهم میریزن.
2- تبدیل JSON به دادههای PHP
حالا باید رشته JSON رو به یه چیزی تبدیل کنیم که PHP بتونه باهاش کار کنه. این کارو با json_decode () انجام میدیم:
$data = json_decode($json, true);
$objectData = json_decode($json);
echo $objectData->Student[0]->Name;
برای داده های تو در تو یا پیچیده، می تونیم از توابع بازگشتی استفاده کنیم:
function printData($arr) {
foreach ($arr as $key => $value) {
if (is_array($value)) {
printData($value);
} else {
echo "$key: $value\n";
}
}
}
printData($data);
این روش برای هر نوع داده پیچیده ای کار میکنه.
فراتر از پایه: نکات حرفهای و تحلیل های عمیق
-
جلوگیری از Double Encoding
یکی از دام های رایج اینه که دوباره روی داده JSON شده، jason_encode بزنید:
json_encode(json_encode($data));
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
-
JASON_PRETTY_PRINT → خواناتر شدن خروجی
-
JASON_UNESCAPED_UNICODE → جلوگیری از به هم ریختن متن فارسی
-
اعتبارسنجی با JSON Schema
برای API های حساس Parse کردن JSON کافی نیست و شما باید ساختارش رو هم اعتبارسنجی کنید. ابزارهایی مثل این کار رو انجام میدن.
برای JSON های بزرگ (مثلاً گزارش های چندصد مگابایتی)، استفاده از file_get_contacts() باعث میشه حافظه منفجر بشه! بهجاش از Streaming Parser ها مثل JasonMachine استفاده کنید.
دیدگاه تحلیلی: PHP برای داده های سنگین بهینه نشده، بنابراین اگر پروژه تون نیاز به پردازش حجم زیاد JSON داره، معماری رو به سمت Stream Processing ببرید.
JSON و امنیت
JSON می تونه دروازه حمله باشه:
-
JSON Injection: وقتی داده خام مستقیماً تو HTML یا کوئری استفاده بشه.
-
Schema Poisoning: وقتی ساختار داده عمداً تغییر کنه.
تحلیل: فقط Parse کافی نیست. همیشه JSON رو اعتبارسنجی و Sanitization کنید.

آینده JSON در PHP
-
GraphQL بهعنوان جایگزین معرفی شد، اما همچنان خروجیش JSON هست.
-
قابلیت هایی مثل Typed Properties (PHP 7.4+) و Enums (PHP 8.1) باعث میشن JSON خیلی راحت تر به ساختارهای PHP مپ بشه.
مثال پیشرفته: کار با API
بیایید تصور کنیم داده ها رو از یه API بیرونی بگیریم و بعد با اونا کار کنیم:
$apiUrl = "https://api.example.com/students";
$response = file_get_contents($apiUrl);
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
die("??? ?? ????? JSON ?? API: " . json_last_error_msg());
}
foreach ($data['Student'] as $student) {
echo "{$student['Name']} - {$student['Subject']}\n";
}
-
یه تابع wrapper بساز که JSON رو parse کنه، خطاها رو مدیریت کنه و داده ها رو فیلتر کنه.
-
برای JSON های متغیر هم قبل از پردازش، داده ها رو normalize کن تا کدت همیشه راحت کار کنه.
نکات حرفه ای:
-
JSON های بزرگ رو Lazy Load یا فقط داده های لازم رو پردازش کن.
-
از روش های Memory-efficient استفاده کن.
-
همیشه داده ها رو اعتبارسنجی و مدیریت خطا کن.
سخن آخر
تجزیه (Parse) JSON تو PHP یکی از مهارت های پایه و خیلی مهم برای کار با داده های وب و API هاست. همون طور که دیدیم، با توابع json_encode () و json_decode () راحت می تونیم داده های PHP رو به JSON تبدیل کنیم و برعکس، JSON رو به آرایه یا شی PHP تبدیل کنیم. یاد گرفتن کار با JSON باعث میشه برنامه نویسیت حرفه ای تر بشه و راحت تر بتونی با API ها و سرویس های خارجی کار کنی.
با تمرین و پیاده سازی مثال های واقعی، مهارتت تو کار با JSON بهتر میشه و میتونی برنامه های سریع، پویا و انعطاف پذیر بسازی که با داده های مدرن وب کاملاً جور در بیان.
اگه هنگام اجرای این تمرینات به مشکلی برخوردید، با ما در میان بذارید تا شما رو بهتر راهنمایی کنیم!