Php JMS序列化程序SerializedName()不工作
我的实体Foo中有一个$character属性 属性本身是一个实体(AppBundle\entity\Character) 当我序列化Foo时,我不想序列化整个实体字符:我只需要字符的昵称 我在AppBundle\Entity\Foo中写了这个: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()
/**
*
* @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吗?