Json_Decode 未解码我的 JSON

发布于 2024-11-28 16:48:12 字数 935 浏览 2 评论 0原文

我正在使用 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

我的 json 上有一个尾随的和 /n 的原因吗?

编辑:

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

I am using couchDB to get a UUID so that I can send a new document to the database.

In order to get this UUID, I use a curl statement:

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

This returns the expected result:

{"uuids":["af09ffd3cf4b35c2d94d1ed755000fb8"]}

However, the following json_decode fails:

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

The error printed is: 'int(0)' (not in quotes.), and $uuid is a json string still.

Help appreciated Thank you!

EDIT:

var_dump($uuid) = int(1)

EDIT:
var_dump(getUUID()) = {"uuids":["af09ffd3cf4b35c2d94d1ed755000fb8"]}\n1

Is there any reason why I would have a trailing one, and /n on my json??

EDIT:

The problem was with curl, look at the answer below!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

攀登最高峰 2024-12-05 16:48:12

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

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

例如,请参阅 curl_exec 手册中的此注释:http://www.php.net/manual/de/function.curl-exec.php#13020

The problem lies in the use of curl in the getUUID() function.

You must set CURLOPT_RETURNTRANSFER, otherwise curl_exec will just echo the result, while returning 1 (as you see).

See for example this comment in the curl_exec manual: http://www.php.net/manual/de/function.curl-exec.php#13020

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文