Как разобрать объект JSON?Сбой - PullRequest
1 голос
/ 22 декабря 2011

Я пытаюсь использовать сервис Transendit.com с Codeigniter.В настоящее время я пытаюсь создать страницу уведомлений.Я могу получить запрос POST (в формате JSON) и записать его в файл.Странно то, что я не могу разобрать объект JSON в массиве PHP, чтобы извлечь из него соответствующие данные.Когда я декодирую его перед записью в файл, файл пуст.Если я не пишу код JSON в файл.

Это код моего контроллера:

$result = $_POST['transloadit'];

$result = json_decode($result); // This produces empty content in file

$this->load->helper('file');

if ( ! write_file('./files/myfile.php', $result))
{
 echo 'Unable to write the file';
} else {
 echo 'File written!';
}

Объект JSON, отправляемый на страницу, можно найти здесь: http://pastie.org/3056727

1 Ответ

3 голосов
/ 22 декабря 2011

Вы пытаетесь записать объект stdclass (декодированный json) непосредственно в файл - это не сработает.

Не декодировать $result - используйте исходную строку json для записи вфайл.Кроме того, .json является допустимым форматом файла - рассмотрите возможность его использования вместо .php (может иметь больше смысла).

$result = $_POST['transloadit'];
$this->load->helper('file');

// You can test for valid json like this:
$is_valid_json = json_decode($result) !== NULL;

if ( ! write_file('./files/myfile.json', $result)) {
    echo 'Unable to write the file';
}
else {
    echo 'File written!';
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...