- var_dump: documentation ( source)
- json_decode: documentation ( source)
- json_last_error: documentation ( source)
- json_encode: documentation ( source)
<?php
/**
* Checks whether a string is valid json.
*
* @param string $string
* @return boolean
*/
function json_is($string)
{
try
{
// try to decode string
json_decode($string);
}
catch (ErrorException $e)
{
// exception has been caught which means argument wasn't a string and thus is definitely no json.
return FALSE;
}
// check if error occured
return (json_last_error() == JSON_ERROR_NONE);
}
// Make sure the string is not empty and is, in fact, a string. An empty string is not valid JSON.
function is_json($string) {
return !empty($string) && is_string($string) && is_array(json_decode($string, true)) && json_last_error() == 0;
}
//I think in PHP it's more important to determine if the JSON object even has data, because to use the data you will need to call json_encode() //or json_decode(). I suggest denying empty JSON objects so you aren't unnecessarily running encodes and decodes on empty data.
function has_json_data($string) {
$array = json_decode($string, true);
return !empty($string) && is_string($string) && is_array($array) && !empty($array) && json_last_error() == 0;
}
function isJson($string, $assoc = false) {
var_dump(empty(json_decode($string)));
json_decode($string, $assoc);
if(!empty($string) && is_string($string)) {
json_decode($string, $assoc);
return (json_last_error() == JSON_ERROR_NONE);
// return json_decode($str) != null;
}
return false;
}
$a=['arraiii'=>['dentro'=>234]];
$b=json_encode($a);
$c='{}';
var_dump(isJson($c));