微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-JMSSerializer预期输入的结尾,但是得到类型为T_NONE的“ /”

我正在使用JMS序列化和反序列化我的实体,我有一个批处理过程来生成json文件,而其他人则读取该文件

我的实体有一个类似以下内容的DateTime字段

/**
 * @var \DateTime
 *
 * @ORM\Column(name="inscription_date", type="datetime", nullable=false)
 * @JMS\Type("DateTime<'d/m/Y'>")
 */
private $inscriptionDate;

当实体被序列化时,结果是

"inscription_date":"30\/05\/2007"

但是问题是当我要反序列化时我会

[JMS\Parser\SyntaxErrorException]                                            
Expected end of input, but got "/" of type T_NONE at position 11 (0-based).

注意:当我使用json_decode内置函数时,返回stdClass没有问题

更新1

似乎不是此字段,我删除了原始序列化的字段,但仍然收到相同的错误.每个对象都在一行中序列化,每个行用PHP_EOL分隔

这是数据people.json的示例

{"name":"dexter","date":"13/04/2009", "doc": "1047516320" }
{"name":"deedee","date":"30/05/2013", "doc": "1047516325" }

所有字段均有效,数据类型为数字或字符串

解决方法:

反序列化失败时,会发生此错误.确保使用正确的数据类型传递正确的json.还要检查也将反序列化的子对象是否正确-传递的json也必须正确.

另外,请确保正确编写您的类,不要使用正斜杠:

@Type("Acme\DemoBundle\Entity\City")

还要确保这实际上是类,而不是接口(您可能需要编写接口解析器来实现)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐