如何将序列化的JSON视图数据作为对象数组输出,而不是包装在外部对象中?

时间:2013-10-08 14:27:50

标签: arrays json cakephp serialization format

我正在将CakePHP数组的返回值转换为JSON,目前它是这样的:

{
  "platformusers" : [
    {
      "id" : "1",
      "name" : "user1"
    },
    {
      "id" : "3",
      "name" : "user3"
    }
  ]
}

我希望它是这样的:

[
    {
      "id" : "1",
      "name" : "user1"
    },
    {
      "id" : "3",
      "name" : "user3"
    }
]

我正在尝试使用 Set :: extract('{n} .Model',$ data) Hash :: extract('{n} .Model', $ data)根本没有运气。

完整代码:

    $platformusers = $this->Platformuser->find('all', array(
        'fields' => array('Platformuser.id', 'Platformuser.name')
    ));

    $platformusers = Hash::extract('{n}.Platformuser', $platformusers);

    $this->set(array(
        'platformusers' => $platformusers,
        '_serialize' => array('platformusers')
    ));

1 个答案:

答案 0 :(得分:10)

string选项而不是_serialize设置arrayarray表示可能存在多个需要序列化的视图变量,并且需要将它们打包到单独的对象属性中。

$this->set(array(
    'platformusers' => $platformusers,
    '_serialize' => 'platformusers'
));

这应该会给你想要的结果。