我的脚本测试以查看数组元素是否包含json。一切顺利,直到我到达包含由数字组成的字符串(邮政编码)的数组元素。这就是:
$s = '70115';
if (json_decode($s)){
echo 'this is json';
} else {
echo 'this is not json';
}
//result: 'this is json'
//expected result: 'this is not json'
我尝试将$ s显式地转换为字符串并将其编码为UTF8,但没有运气。
知道为什么会这样吗?
答案 0 :(得分:2)
它是有效的JSON。
您可能想要检查您是否确实有一个对象:
$s = '70115';
if (is_object(json_decode($s))){
echo 'this is json';
} else {
echo 'this is not json';
}
答案 1 :(得分:0)
实际上,JSON text is defined to be either a serialized object or array:
JSON文本是序列化对象或数组。
JSON-text = object / array
但是,json_decode
也会解码任何其他valid JSON value。