我正在使用Symfony 3.4
,FOSRestBundle 2.5.0
,JMSSerializer 2.1.0
和JMSSerializerBundle 3.1.0
。
创建JSON响应的默认命名策略似乎使用下划线:
MyController类扩展了AbstractFOSRestController {
public function someAction(Request $request) {
$data = $someThirdPartyService->getThirdPartyObject();
$data->setSomeProperty('value');
$view = $this->view($data, 200);
$return $this->handleView($view);
}
// JSON
{
'some_property' : 'value <== lowercase underscore naming
}
}
这在我的整个项目中都能正常工作。但是,当与第三方Web服务通信时,我需要改用CamelCase
。由于响应数据对象是由第三方库创建的,因此我无法更改其来源(例如,将@JMS\SerializedName
添加到属性中)。
我知道我可以在parameters.yml
文件中更改命名策略,但这会影响并更改整个项目中的策略吗?
是否可以通过某种方式为特定的控制器,动作或视图指定策略?