我试图通过Symfony 4.4(LTS)使用JMS将一些JSON反序列化为普通的旧PHP对象。
JSON看起来像这样:
{
"id": "c9cde632-ca23-4ed0-8b6d-05dfcbf1d994",
"someProperty": "This is the value",
"active": true,
"nestedProperty": {
"id": "78d46fb8-5f1a-4a00-89a6-4b96482b9ef6",
"name": "The Name"
}
}
我有一个类似于以下内容的PHP类:
<?php
class NestedExample
{
/** @var string $id */
private $id;
/** @var string $someProperty */
private $someProperty;
/** @var bool $active */
private $active;
// Fluent Getters and Setters
// ...
}
这正确地将上述字段反序列化为对象。
但是,我也想通过以下操作将嵌套对象的值也添加到此类中:
/** @var string $nestedPropertyId */
private $nestedPropertyId;
/** @var string $nestedPropertyName */
private $nestedPropertyName;
甚至:
private $nestedProperty;
// Fluent Getter and Setter for $nestedProperty
/** @VirtualProperty("nestedPropertyId") */
public function getNestedPropertyId ()
{
return $this->getNestedProperty()->id;
}
但是没有任何效果。
我做错了吗?我从不打算将此类序列化回JSON。转型将永远是一种方式。