将JSON解码为Symfony实体

mic*_*ael 3 php serialization decode symfony

除了编写自定义脚本将JSON对象解码为PHP实体之外,有没有人知道是否有一种简单的方法?

我正在使用下面的脚本编码为JSON,但是当我解码它时,它是一个数组,而不是一个实体.

$serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new 
            JsonEncoder()));
            $json = $serializer->serialize($coupon, 'json');
            $session->set('json', $json);
Run Code Online (Sandbox Code Playgroud)

然后我以这种方式解码

$session = $this->getRequest()->getSession();
    $json = $session->get('json');
    $serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
    $coupon = $serializer->decode($json, 'json');
Run Code Online (Sandbox Code Playgroud)

但就像我说的......它不再是优惠券实体,它只是一个阵列.

hak*_*kre 8

假设以下工作:

$session = $this->getRequest()->getSession();
$json = $session->get('json');
$serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
$coupon = $serializer->decode($json, 'json');
Run Code Online (Sandbox Code Playgroud)

$coupon是序列化数据的规范化数组.然后假设您希望实例化该类的类被调用Coupon,您需要对其进行非规范化:

$coupon = $serializer->denormalize($coupon, 'Coupon');
Run Code Online (Sandbox Code Playgroud)

注意命名空间,类名Coupon可能不正确.