webservice调用后,json_decode返回NULL有一个奇怪的行为json_encode和json_decode我不能找到一个解决方案:我的php应用程序调用php Web服务。webservice返回如下所示的json:var_dump($foo):string(62) "{"action":"set","user":"123123123123","status":"OK"}"现在我想在我的应用程序中解码json:$data = json_decode($foo, true)但它返回NULL:var_dump($data):NULL我用的是php5。来自webservice的响应的Content-Type :( "text/html; charset=utf-8"也尝试使用"application/json; charset=utf-8")可能是什么原因?
3 回答
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
好吧,我有一个类似的问题,问题是服务器中的PHP魔术引号......这是我的解决方案:
if(get_magic_quotes_gpc()){ $param = stripslashes($_POST['param']);}else{ $param = $_POST['param'];}$param = json_decode($param,true);
UYOU
TA贡献1878条经验 获得超4个赞
调试时打印最后一个json错误。
json_decode( $so, true, 9 );$json_errors = array( JSON_ERROR_NONE => 'No error has occurred', JSON_ERROR_DEPTH => 'The maximum stack depth has been exceeded', JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded', JSON_ERROR_SYNTAX => 'Syntax error',); echo 'Last error : ', $json_errors[json_last_error()], PHP_EOL, PHP_EOL;
还可以使用json.stringify()函数来仔细检查您的JSON语法。
- 3 回答
- 0 关注
- 469 浏览
添加回答
举报
0/150
提交
取消