Php JMS序列化程序SerializedName()不工作

Php JMS序列化程序SerializedName()不工作,php,symfony,serialization,annotations,jmsserializerbundle,Php,Symfony,Serialization,Annotations,Jmsserializerbundle,我的实体Foo中有一个$character属性 属性本身是一个实体(AppBundle\entity\Character) 当我序列化Foo时,我不想序列化整个实体字符:我只需要字符的昵称 我在AppBundle\Entity\Foo中写了这个: /** * * @Serializer\VirtualProperty() * @Serializer\SerializedName("character") */ public function getCharacterNickname()

我的实体Foo中有一个$character属性

属性本身是一个实体(AppBundle\entity\Character)

当我序列化Foo时,我不想序列化整个实体字符:我只需要字符的昵称

我在AppBundle\Entity\Foo中写了这个:

/**
 * 
 * @Serializer\VirtualProperty()
 * @Serializer\SerializedName("character")
 */
public function getCharacterNickname()
{
    return $this->character->getNickname();
}
虚拟财产”注释起作用

但是“serializedName”没有,因为结果如下:

{
    "id": 18,
    "characterNickname": "Mr.Gilbert Norrel",
    "foo": "foo",
    "bar": true,
    "baz": "baz"
}
(“character昵称”而不是我在注释中所问的“character”)

属性“id”、“foo”、“bar”和“baz”具有注释@Serializer\Expose()。属性“character”没有(因为我想通过VirtualProperty序列化该属性)

我错过了什么? 这是因为我想用现有属性的名称序列化该属性吗

Ty:)

找到了解决方案:


库的identialPropertyNamingStrategy文件中似乎有错误。

是否有用
@Serialize\Exclude()
注释的
$character
属性?听起来可能很愚蠢,但别忘了清除cache@OluwafemiSule不(我在注释中使用$character属性尝试了这两种方法,但没有使用,答案是一样的)@SergeiKutanov尝试了。没有任何更改:-/您使用的是默认值以外的NamingStrategy吗?