json_decode在有效值php上返回null
这是我的密码:json_decode在有效值php上返回null,php,Php,这是我的密码: echo '<br/>'; echo 'Json data from DB '.json_encode($output); $data=array(); $array=json_decode($output,true); echo '<br/>'; echo 'Concerted into an array '.json_encode($array); 为什么json_devode返回null?如果我这样做:
echo '<br/>';
echo 'Json data from DB '.json_encode($output);
$data=array();
$array=json_decode($output,true);
echo '<br/>';
echo 'Concerted into an array '.json_encode($array);
为什么json_devode返回null?如果我这样做:
$data = '[{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}]';
// convert to an array
$data = json_decode($data, true);
然后正常打印出来:
Json data from DB [{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}]
Concerted into an array {"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","4":"1","key-4":"1"}
因为
json\u decode
接受一个字符串,而$output
不是一个字符串(正如json\u encode
所证明的:它是一个数组)。你似乎把事情搞混了。在您的示例中,$output
似乎已经是一个数组,您想再次解码它吗?怎么做
执行此操作时:
json_encode($output);
它返回一个正确的JSON对象,这意味着
$output
已经是一个数组。您不能对非json对象进行解码。看起来您可以直接使用$output
,或者您需要更清楚地说明您的问题。三次检查您试图解码的变量!
json_encode($output);