php json_decode返回NULL,语法错误

时间:2016-03-03 19:22:50

标签: php json

冒着重复的风险,这是我自己与json_decode()的斗争。我已经通过了很多(如果不是全部)这个帖子并没有任何效果。所以这里:

以下是我的json变量内容的示例:

{"id":"212","game":"36","player":"1","currentChallenge":"3","startDate":"1456575719","endDate":"1456575918","attempts":"0","completed":"1"}

我在http://jsonlint.com/上查了一下,这很好 我按照其他论坛建议运行这些过滤器:

$response = utf8_encode($response);
$response = str_replace('"', '"', $response);

这是我的解码线:

var_dump(json_decode($response, true));

我仍然得到NULL响应和语法错误(json_last_error())。

这些数据来自我自己的数据库和api。我尝试手动输入数据库并查询,确定我可以摆脱输入过程产生的任何问题。那里没有运气。我还对各种表进行了采样,以确保它不是与数据库设置相关的问题。

这是我的所有代码:

if (isset($_POST['submit']) ) {

    $table = $_POST['table'];
    $id = $_POST['id'];
    $url = 'http://example.com/api.php/' . $table . '/' . $id;

    $client = curl_init($url);
    curl_setopt($client,CURLOPT_RETURNTRANSFER,true);

    $response = curl_exec($client);
    if ($response === false) {
        $info = curl_getinfo($curl);
        curl_close($curl);
        die('error occured during curl exec. Additioanl info: ' . var_export($info));
    }

    $response = utf8_encode($response);
    $response = str_replace('"', '"', $response);
    echo $response;

    echo '<br />Result of json_decode: '; 
    var_dump(json_decode($response, true));

    $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;

}

谢谢!

0 个答案:

没有答案