如何解析JSON对象?失败

时间:2011-12-22 11:02:09

标签: json parsing codeigniter

我正在尝试使用Codeigniter的Transendit.com服务。目前我正在尝试构建通知页面。我可以收到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 个答案:

答案 0 :(得分:3)

您正在尝试将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!';
}