2013-08-08 2 views
0

Я использую CakePHP для создания RESTful api, который подключается через EmberJS от переднего конца.Удалить квадратные скобки - Json Data - CakePHp RESTful

Следующий код внутри 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" 
    } 
} 

Thankyou

ответ

1

Квадратные скобки представляют собой массивы в Javascript/JSON. Вам, видимо, нужен объект (я никогда не использовал EmberJs). Итак:

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

Спасибо, что сработали, чтобы снять квадратные скобки. Я теперь получаю это: {"content": {"0": {"id": "1", "name": "Home", "extended": "Это домашняя страница.", "Created": «2013-08-05 23:40:55», «modified»: «2013-08-05 23:40:55»}}} Обратите внимание на запись «0» по содержанию. Как мне избавиться от этого? Спасибо – sluggerdog

+0

Я закончил использование этого $ this-> set ('content', $ content [0]); и это работает. Еще раз спасибо. – sluggerdog

Смежные вопросы