有没有人知道,如果有一个简单的方法,除了编写自定义脚本解码JSON对象到PHP实体?
我使用下面的脚本编码到JSON,但当我解码它是一个数组,而不是一个实体。
$serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new
JsonEncoder()));
$json = $serializer->serialize($coupon, 'json');
$session->set('json', $json);
然后我以这种方式解码
$session = $this->getRequest()->getSession();
$json = $session->get('json');
$serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
$coupon = $serializer->decode($json, 'json');
但是就像我说的…它不再是一个优惠券实体,它只是一个数组。
假设以下工作正常:
$session = $this->getRequest()->getSession();
$json = $session->get('json');
$serializer = new Serializer(array(new GetSetMethodNormalizer()), array('json' => new JsonEncoder()));
$coupon = $serializer->decode($json, 'json');
$coupon
是序列化数据的规范化数组。然后假设您希望实例化此数据的类称为Coupon
,则需要对其进行反规范化:
$coupon = $serializer->denormalize($coupon, 'Coupon');
注意命名空间,类名Coupon
可能不正确
我建议使用JMSSerializerBundle。
它的序列化器比序列化器组件中的序列化器高级得多。
另一个有趣的JSON类提示选项