প্রশ্নের উত্তর দাও
ফাংশনটি json_last_error
জাসন এনকোডিং এবং ডিকোডিংয়ের সময় ঘটে যাওয়া শেষ ত্রুটিটি প্রদান করে। তাই কার্যকর জেএসএন চেক করার দ্রুততম উপায় হ'ল
// decode the JSON data
// set second parameter boolean TRUE for associative array output.
$result = json_decode($json);
if (json_last_error() === JSON_ERROR_NONE) {
// JSON is valid
}
// OR this is equivalent
if (json_last_error() === 0) {
// JSON is valid
}
মনে রাখবেন যে json_last_error
কেবলমাত্র পিএইচপি> = 5.3.0 এ সমর্থিত।
সঠিক ERROR পরীক্ষা করার জন্য সম্পূর্ণ প্রোগ্রাম
বিকাশের সময় সঠিক ত্রুটিটি জানা সর্বদা ভাল। পিএইচপি ডক্সের উপর ভিত্তি করে সঠিক ত্রুটিটি পরীক্ষা করার জন্য এখানে সম্পূর্ণ প্রোগ্রাম রয়েছে।
function json_validate($string)
{
// decode the JSON data
$result = json_decode($string);
// switch and check possible JSON errors
switch (json_last_error()) {
case JSON_ERROR_NONE:
$error = ''; // JSON is valid // No error has occurred
break;
case JSON_ERROR_DEPTH:
$error = 'The maximum stack depth has been exceeded.';
break;
case JSON_ERROR_STATE_MISMATCH:
$error = 'Invalid or malformed JSON.';
break;
case JSON_ERROR_CTRL_CHAR:
$error = 'Control character error, possibly incorrectly encoded.';
break;
case JSON_ERROR_SYNTAX:
$error = 'Syntax error, malformed JSON.';
break;
// PHP >= 5.3.3
case JSON_ERROR_UTF8:
$error = 'Malformed UTF-8 characters, possibly incorrectly encoded.';
break;
// PHP >= 5.5.0
case JSON_ERROR_RECURSION:
$error = 'One or more recursive references in the value to be encoded.';
break;
// PHP >= 5.5.0
case JSON_ERROR_INF_OR_NAN:
$error = 'One or more NAN or INF values in the value to be encoded.';
break;
case JSON_ERROR_UNSUPPORTED_TYPE:
$error = 'A value of a type that cannot be encoded was given.';
break;
default:
$error = 'Unknown JSON error occured.';
break;
}
if ($error !== '') {
// throw the Exception or exit // or whatever :)
exit($error);
}
// everything is OK
return $result;
}
বৈধ JSON ইনপুট দিয়ে পরীক্ষা করা হচ্ছে
$json = '[{"user_id":13,"username":"stack"},{"user_id":14,"username":"over"}]';
$output = json_validate($json);
print_r($output);
বৈধ OUTPUT
Array
(
[0] => stdClass Object
(
[user_id] => 13
[username] => stack
)
[1] => stdClass Object
(
[user_id] => 14
[username] => over
)
)
অবৈধ জেএসএন দিয়ে পরীক্ষা করা হচ্ছে
$json = '{background-color:yellow;color:#000;padding:10px;width:650px;}';
$output = json_validate($json);
print_r($output);
অবৈধ OUTPUT
Syntax error, malformed JSON.
(পিএইচপি> = 5.2 এবং & পিএইচপি <5.3.0) এর জন্য অতিরিক্ত নোট
যেহেতু json_last_error
পিএইচপি 5.2 তে সমর্থিত নয়, আপনি এনকোডিং বা ডিকোডিং বুলিয়ান রিটার্ন কিনা তা পরীক্ষা করে দেখতে পারেন FALSE
। এখানে একটি উদাহরণ
// decode the JSON data
$result = json_decode($json);
if ($result === FALSE) {
// JSON is invalid
}
আশা করি এটি সহায়ক। শুভ কোডিং!
json_decode
একবার ব্যবহার করে বিবেচনা করুন ... এছাড়াও, এর ইনপুট এবং রিটার্ন মানগুলি পরীক্ষা করে দেখুনjson_decode
।