rkm*_*max 4 php serialization deserialization jmsserializerbundle
我正在使用 JMS 来序列化和反序列化我的实体我有一个批处理来生成一个 json 文件和其他读取该文件
我的实体有一个 DateTime 字段,如下所示
/**
* @var \DateTime
*
* @ORM\Column(name="inscription_date", type="datetime", nullable=false)
* @JMS\Type("DateTime<'d/m/Y'>")
*/
private $inscriptionDate;
Run Code Online (Sandbox Code Playgroud)
当实体被序列化时,结果是
"inscription_date":"30\/05\/2007"
Run Code Online (Sandbox Code Playgroud)
但问题是当我要反序列化我得到
[JMS\Parser\SyntaxErrorException]
Expected end of input, but got "/" of type T_NONE at position 11 (0-based).
Run Code Online (Sandbox Code Playgroud)
注意:当我使用json_decode内置函数返回一个 stdClass 时没有问题
似乎不是这个字段,我删除了原始序列化的字段,但仍然出现相同的错误。每个对象都在一行中序列化,每个对象由 PHP_EOL 分隔
这是数据的样本 people.json
{"name":"dexter","date":"13/04/2009", "doc": "1047516320" }
{"name":"deedee","date":"30/05/2013", "doc": "1047516325" }
Run Code Online (Sandbox Code Playgroud)
所有字段均有效且数据类型为数字或字符串
反序列化失败时会发生此错误。确保使用正确类型的数据传递正确的 json。还要检查您也将被反序列化的子对象是否也正确 - 传递的 json 也必须正确。
还要确保在没有正斜杠的情况下正确编写您的类:
@Type("Acme\DemoBundle\Entity\City")
Run Code Online (Sandbox Code Playgroud)
还要确保这实际上是类,而不是接口(您可能需要编写接口解析器来实现它)