Json_Decode не расшифровывает мой JSON - PullRequest
3 голосов
/ 10 августа 2011

Я использую 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.

Помощь оценена Спасибо!

EDIT:

var_dump($uuid) = int(1)

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

Есть ли какая-то причина, почему у меня был бы трейлинг, и / n на моем json ??

РЕДАКТИРОВАТЬ:

Проблема была с curl, посмотрите ответ ниже!

1 Ответ

9 голосов
/ 10 августа 2011

Проблема заключается в использовании curl в функции getUUID().

Вы должны установить CURLOPT_RETURNTRANSFER , в противном случае curl_exec просто отобразит результат, возвращая 1 (как вы видите).

См., Например, этот комментарий в руководстве curl_exec: http://www.php.net/manual/de/function.curl-exec.php#13020

...