在Symfony序列化中更改序列化的属性名称

ind*_*lic 2 php symfony

我正在使用Symfony序列化器。它运作良好。

use Symfony\Component\Serializer\Annotation\Groups;

/**
 * 
 * @Groups({"default", "notification"})
 */
public function getUser()
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

是否可以将属性序列化为另一个名称?所以我想getUser在框架中使用,但是属性应该profile在序列化的json中命名为。

我该怎么做?

Ben*_*ati 5

编辑19-11-2018,此功能从Symfony 4.2开始可用:

/**
 * @SerializedName("some_name")
 */
private $lastName;
Run Code Online (Sandbox Code Playgroud)

doc中有更多信息。

感谢Sodj的提醒。


您可以为此使用自定义名称转换器。文档的此部分中包含实现此目的的所有信息。

还打开了一个问题,以直接使用注释覆盖序列化对象的属性名称https://github.com/symfony/symfony/issues/15171

  • 现在您可以在模型序列化配置中使用 `serialized_name` (2认同)