【发布时间】:2016-04-15 07:21:48
【问题描述】:
我正在尝试序列化和反序列化 Doctrine 对象图。
结构相当复杂,但这个例子总结了我的问题:
有一个 Company 实体与 Employee 具有 OneToMany 关系。Employee 实体与 Company 具有多对一关系。
这个序列化如下:
{
"company": {
"name": "MegaCorp",
"employees": [{
"name": "John Doe",
"company": null
}]
}
}
所以nulls 引用了Employee 的父Company。对于序列化,这是可以的。
但是现在当我反序列化这个 json 时,我在 Employee 对象中得到了一个 null Company。我想要(并期望)得到对父 Company 的正确引用。
这是否可以使用 JMS 序列化程序实现,如果可以,如何实现?
如果不可能,有什么好的解决方法?记住这是一个很大的图,我不想手动做。
【问题讨论】:
-
不要使引用为空,而是使用它的 ID。基本上,您需要一个代理而不是真实对象。我不知道 JMS 是否支持这个开箱即用。
-
这将是一个可能的解决方案,但实际上问题是:JMS 是否支持类似的东西?
-
我知道它有
@preSerialize和@postSerialize钩子。所以这是可行的。 -
是的,我现在正在研究这个,但我觉得这不是一个不常见的用例,因此希望 JMS 默认支持它。
-
你试过
MaxDepth()吗?
标签: php jmsserializerbundle jms-serializer