删除Square Brackets - Json Data - CakePHp RESTful

时间:2013-08-08 00:52:30

标签: json rest cakephp ember.js

我正在使用CakePHP创建一个RESTful api,它通过前端连接到EmberJS。

CakePHP中的以下代码正在生成我需要的JSON,但它放在EmberJS不喜欢的方括号中。如何在没有方括号的情况下获取数据?

CakePHP视图

public function view($id = null) {

    if($id == NULL)
    {
        $id = $this->request->params['id'];
    }

    $this->layout = 'ajax';

    $options = array('conditions' => array('Content.' . $this->Content->primaryKey => $id));
    $content = $this->Content->find('first', $options);
    $content = Set::extract('/Content/.', $content);

    $this->set('content', $content);

    $this->set('_serialize', $content);

    ;

}

view.ctp

echo json_encode(compact('content'));

它正在归还:

{
    "content":
    [{
     "id":"1",
     "name":"Home",
     "extended":"This is the homepage.",
     "created":"2013-08-05 23:40:55",
     "modified":"2013-08-05 23:40:55"
    }]
}

我需要这个:

{
    "content":
    {
     "id":"1",
     "name":"Home",
     "extended":"This is the homepage.",
     "created":"2013-08-05 23:40:55",
     "modified":"2013-08-05 23:40:55"
    }
}

三江源

1 个答案:

答案 0 :(得分:1)

方括号是Javascript / JSON中的数组。你显然需要一个对象(我从未使用过EmberJs)。所以:

json_encode(compact('content'),JSON_FORCE_OBJECT);