Codeigniter json_decode视图作为变量返回NULL

时间:2015-02-16 17:46:16

标签: php json codeigniter

似乎无法找到解决方案,我想从像这样的视图变量中加载json数据

 $this->json = $this->load->view('/jsonfiles/page.json','',true);

对外输出

var_dump(json_decode($this->json,true));

= NULL

View似乎正在错误地渲染.json文件,因为json_decode失败了。 (也许不是错误,但格式不同),我已经尝试过utf8_encode,没有运气

page.json中的JSON变量

[
  {
    "page" : {
      "name" : "PageNameHere",
      "date" : true
    }
  }
]

或者有替代方法吗?

UPDATE :是的,当它在变量中的实际字符串时可以正常工作

$this->json = '[{"page":{"name":"PageNameHere","date":true}}]';
var_dump(json_decode($this->json,true));

解决方案:所以我决定把它弄清楚,并且由于我的错误,我的JSON的最后一部分中有一个“,”逗号,这不在此主题中,我缩短了主题的JSON,但我发现它,使用这个整洁的错误开关,能够找到JSON渲染错误

 switch (json_last_error()) {
    case JSON_ERROR_NONE:
        echo ' - No errors';
    break;
    case JSON_ERROR_DEPTH:
        echo ' - Maximum stack depth exceeded';
    break;
    case JSON_ERROR_STATE_MISMATCH:
        echo ' - Underflow or the modes mismatch';
    break;
    case JSON_ERROR_CTRL_CHAR:
        echo ' - Unexpected control character found';
    break;
    case JSON_ERROR_SYNTAX:
        echo ' - Syntax error, malformed JSON';
    break;
    case JSON_ERROR_UTF8:
        echo ' - Malformed UTF-8 characters, possibly incorrectly encoded';
    break;
    default:
        echo ' - Unknown error';
    break;
}

我的问题被标记为“语法错误,格式错误的JSON

0 个答案:

没有答案