JMS Serializer 选择性序列化
JMS Serializer selective serialization
PHP,Symfony,JMSSerializerBundle。
我想将Organization
对象中的User
对象序列化为它的ID,但是当User
对象属于其他对象时,使用默认序列化。
public class Organization {
// type is User
$user; -> "123123"
...
}
public class Other {
// type is User
$user; -> "{id: 123123, name: John, ...}"
...
}
通过合理的努力是否可能?
您可以从序列化中排除 User
对象,并添加一个虚拟 属性 来 return 用户 ID(您可以将其称为 userId、user 或任何您想要的名称)。
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\Exclude;
public class Organization {
/**
* ...
* @Exclude
*/
$user;
/**
* @VirtualProperty
* @SerializedName("user")
*/
public function getUserId()
{
return $this->user->getId();
}
...
}
PHP,Symfony,JMSSerializerBundle。
我想将Organization
对象中的User
对象序列化为它的ID,但是当User
对象属于其他对象时,使用默认序列化。
public class Organization {
// type is User
$user; -> "123123"
...
}
public class Other {
// type is User
$user; -> "{id: 123123, name: John, ...}"
...
}
通过合理的努力是否可能?
您可以从序列化中排除 User
对象,并添加一个虚拟 属性 来 return 用户 ID(您可以将其称为 userId、user 或任何您想要的名称)。
use JMS\Serializer\Annotation\VirtualProperty;
use JMS\Serializer\Annotation\Exclude;
public class Organization {
/**
* ...
* @Exclude
*/
$user;
/**
* @VirtualProperty
* @SerializedName("user")
*/
public function getUserId()
{
return $this->user->getId();
}
...
}