Json_Decode没有解码我的JSON

时间:2011-08-10 19:09:18

标签: php json couchdb decode

我正在使用couchDB来获取UUID,以便我可以将新文档发送到数据库。

为了获得这个UUID,我使用curl语句:

function getUUID(){
    $myCurlSubmit = curl_init();

    curl_setopt($myCurlSubmit, CURLOPT_URL, 'http://localhost:5984/_uuids');    
    curl_setopt($myCurlSubmit, CURLOPT_HEADER, 0);

    $response = curl_exec($myCurlSubmit);

    curl_close($myCurlSubmit);

    return $response;
}

返回预期结果:

{"uuids":["af09ffd3cf4b35c2d94d1ed755000fb8"]}

但是,以下json_decode失败:

print_r('No match, creating new document.');
$uuid = json_decode(trim(getUUID()));
var_dump(json_last_error());

打印的错误是:'int(0)'(不在引号中),而$ uuid仍然是一个json字符串。

帮助表示感谢!

编辑:

var_dump($uuid) = int(1)

编辑:    var_dump(getUUID())= {“uuids”:[“af09ffd3cf4b35c2d94d1ed755000fb8”]} \ n1

我有什么理由让我有一个尾随的和/ n在我的json上?

编辑:

问题在于卷曲,请看下面的答案!

1 个答案:

答案 0 :(得分:9)

问题在于getUUID()函数中使用curl。

您必须设置CURLOPT_RETURNTRANSFER,否则curl_exec只会回显结果,同时返回1(如您所见)。

请参阅curl_exec手册中的此评论:http://www.php.net/manual/de/function.curl-exec.php#13020