我想动态决定JMS Serializer即将序列化的对象类型。
例如,我有两个属性,一个用于存储折扣值,另一个用于折扣类型。如果折扣类型为0,则折扣价值仅为数字(表示“您作为代理商收到的此百分比数”)。对于discount_type = 1,您将在discount_value中拥有Money对象(Money对象是金额和货币)。
输出应该如下:
{
...
discounts: [
{
value: 10,
type: 0
},
{
value: {
money_value: 50,
money_currency: EUR
},
type: 1
}
]
}
有没有办法做到这一点?我需要在Entity.Class.yml中定义类型,因为我需要稍后进行一些反序列化。
对于这种情况,你可以尝试使用@Discrimantor
annotation.这样你就可以有一些抽象的折扣价值类和它的两个后代,具有不同的字段和映射。