现有一个json,在某一维度中可能会出现'score' 键,请用任意语言写-个check方法判断
json是否满足要求。要求如下:
a.任意一个键为score的值预期是一个整型数字且大于 60,则检查通过
b.若不存在键为score的值,则检查不通过
json参考样例:
针对上述的JSON串定义正确,且能进行判断
数组格式:
Array (
[name] => BeJson
[url] => http://www.bejson.com
[score] => 59
[address] => Array
(
[score] => 20
[city] => 江苏苏州
[country] => 中国
)
[links] => Array
(
[0] => Array (
[score] => 72
[url] => http://www.google.com
)
)
)
//定义json字符串
$str = '{"name":"BeJson",
"url":"http://www.bejson.com",
"score":59,
"address":{
"score":20,
"city":"江苏苏州",
"country":"中国"
},
"links":[{
"score":72,
"url":"http://www.google.com"
}]
}';
//json字符串转换为数组
$obj = json_decode($str,true);
//循环数组
foreach($obj as $k=>$v){
//判断一维数组中的键为score的值预期是一个整型数字且大于 60,则检查通过
if(isset($obj['score']) && $obj['score']>60 && is_int($obj['score'])){
echo '通过1';
die();
}
//判断数组中是否有数组
if(is_array($v)){
//判断二维数组中的键为score的值预期是一个整型数字且大于 60,则检查通过
if($v['score']>60 && is_int($v['score'])){
echo '通过2';
die();
}
//判断数组中是否还存在数组
if(is_array($v[0])){
判断三维数组中的键为score的值预期是一个整型数字且大于 60,则检查通过
if($v[0]['score']>60 && is_int($v[0]['score'])){
echo '通过3';
die();
}
}
}
}
//不存在符合条件的score 则不通过
echo '不通过';