使用JSM Serializer序列化为JSON'原语'

时间:2016-05-05 09:43:12

标签: php jms-serializer

也许我会以错误的方式处理它,但我希望能够将一个对象(代表一个原语)序列化为JSON“原语”。在JsonSerializable接口和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}"

我有更复杂的对象,也代表数组/集合,例如

0 个答案:

没有答案