بررسی ولید بودن json در php

اگه این مطلب براتون جالب بوده پس این طور فرض میکنم که شما بیس قضیه رو میدونید! و به احتمال زیاد اصلا این متن رو نمیخونید و میرید سراغ کد.

جیسان یه رشته است خب. البته قبل دیکد شدنش.پس اول بررسی کنیم آیا متغیر ما رشته است یا نه:

is_string($json);

اگه جواب ترو بود. تابع json_decode که از php نسخه ۵.۲ اضافه شده رو روی متغیرمون اینوک میکنیم:

if (is_string($json))
    json_decode($json,true);

طبق مستندات php ، این تابع اگه نتونه تبدیل رو انجام بده یا اگه به لیمیت حافظه بخوره. NULL بر میگردونه.درغیر این صورت یه آرایه بر میگرده.جالبه که php از نسخه 4 یه تابع اضافه کرده به اسم is_array که کارش بررسی آرایه بودن یا نبودن آرگومانش هست.اگه ورودی آرایه باشه true و در غیر این صورت false برمیگردونه:

if (is_string($json))
   if(is_array(json_decode($json,true))) 

خب حالا میتونیم این سه تا تابع رو به هم لینک کنیم و و تو یه تابع جدید بزاریمشون:

function is_json($json)
{
        if (is_string($json))
                if(is_array(json_decode($json,true))) 
                        return true;
        return false;
}


به همین سادگی :)