序列化实体中的JSON根名称

时间:2014-06-18 14:51:22

标签: symfony fosrestbundle jmsserializerbundle

我正在使用FOSRestBundle和JMSSerializerBundle输出要由ember应用程序使用的JSON数据。我想使用ember-data的内置适配器和预期的JSON格式必须有一个根名称。我目前的JSON如下:

{
     "user_id": 1
     "first": "Dan"
     "email": "dan@email.com" 
 }
Ember期待,我想要的是:

{
 "user":
   {
     "user_id": 1
     "first": "Dan"
     "email": "dan@email.com" 
    }
}

用户是实体的名称。我很确定这只是一个配置的东西,但通过文档我似乎无法找到要设置的内容。我试过@XmlRoot,但这似乎对生成的JSON(预期)没有影响。

2 个答案:

答案 0 :(得分:0)

就我个人而言,我认为缩减API是API消费者的工作,而不是相反。

我建议看看这个将有效负载按摩到形状余烬的例子:

Transform JSON to an appropriate format for RESTAdapter EmberJS

答案 1 :(得分:0)

你可以在控制器中通过发送一个数组作为视图数据来扩展FOSRestController,我无法在配置中找到一种方法来做到这一点,但我同意根节点设置会很好:

$fooThing = $em->getRepository('Foo')->find($id);
$view = $this->view(array('foo' => $fooThing), 200);
return $this->handleView($view);

我很确定这会弄乱我的XML,但我刚开始使用API​​,所以我还没有达到目标。

相关问题