也许我以错误的方式处理它,但我希望能够将一个对象(代表一个基元)序列化为 JSON“基元”。在 JsonSerializable Interface 和 json_encode 的帮助下,这很容易,但我希望能够在 JSM Serializer 的帮助下概括这一点。
我使用了内联注释,但是无论我在序列化对象时尝试什么,都必须使用表示对象的字符串?这个对吗?如果可能的话,我怎么能做到这一点?
class ATest implements SingularValueObjectInterface, JsonSerializable
{
/**
* @JMS\Accessor(getter="get",setter="set")
*/
private $value = 45;
/**
* @return string
* @JMS\Inline
*/
public function get()
{
return $this->value * $this->value;
}
public function jsonSerialize()
{
return $this->get();
}
}
$serializer = \JMS\Serializer\SerializerBuilder::create()->build();
$a = new ATest();
var_dump(json_encode($a), $serializer->serialize($a, 'json'));
string(4) "2025" <- I want this.
vs
"{"value":2025}"
例如,我也有更复杂的对象来表示数组/集合