Symfony的串行不反序列化JSON日期时间

问题描述 投票:-1回答:1

我使用了symfony 4.2序列来解码JSON和实体保存到数据库中,这个问题的日期时间,当我反序列化的symfony给我说,期望一个DateTime对象和字符串给出一个错误。

我检查了所有的“使用”的语句在我的控制,以及所有的配置与财产信息,让symfony的识别JSON的各个领域,并找出它是什么。

链接到Git项目:

https://github.com/erethilclaw/lair_of_claw

/**
* @Route("admin/newPost", name="newPost", methods={"POST"})
*/
public function newPost( Request $request){
    /** @var  Serializer $serializer */
    $serializer = $this->get('serializer');
    $post = $serializer->deserialize($request->getContent(), 
    Post::class, 'json');

    $em = $this->getDoctrine()->getManager();
    $em->persist($post);
    $em->flush();

    return $this->json($post);
}

我经过的Json

{
"title": "A third blog post!",
"published_at": "2018-07-01 12:00:00",
"content": "Hello there!",
"author": "Piotr Jura",
"slug": "a-third-blog-post"
}

与反序列化方法应该在“published_at”转换为保存到数据库中的日期时间,但给我的错误:“类型的期望的参数‘DateTiemInterface’,”串published_at”在属性路径给出‘’。

谢谢你的时间

json symfony4 json-deserialization serializer
1个回答
0
投票

解决了

是我的JSON,现场“publishet_at”在JSON必须是在类,在这里就像是在数据库中。

{
 "title": "A third blog post!",
 "published_at": "2018-07-01 12:00:00",
 "content": "Hello there!",
 "author": "Piotr Jura",
 "slug": "a-third-blog-post"
}

改变解决了这个问题。

{
 "title": "A third blog post!",
 "publishedAt": "2018-07-01 12:00:00",
 "content": "Hello there!",
 "author": "Piotr Jura",
 "slug": "a-third-blog-post"
}
© www.soinside.com 2019 - 2024. All rights reserved.