如何在设置了@ExclusionPolicy(“ all”)的情况下将POST正文内容反序列化为Entity

贝图兹

我正在使用JMSSerializerBundle和,FOSRestBundle并且我正在尝试通过@ParamConverter注释反序列化我的请求

/**
 * @View()
 *
 * @Route("/users/{username}/globaltoken", defaults={"_format" = "json"}, requirements={"user"="\w+"})
 * @ParamConverter(
 *     "userBody", class="Belka\AuthBundle\Entity\User",
 *     converter="fos_rest.request_body"
 * )
 */
public function postAction($username, User $userBody)
{
...

User实体@ExclusionPolicy("all")集和一些属性@expose天。当我进行序列化时,这是完美的。不幸的是,在将我的身体反序列化为一个User对象时,未设置未暴露的属性。有没有一种干净的方法来解决这个问题?

贝图兹

回答自己:@ExclusionPolicy(“all”)出于安全目的,这不是您想要的。该标签是为处理不应序列化的数据而生的,无论出于安全性原因有时它是否不应出现。这是静态的,这样就可以了。

我真正想要的是使用来管理显示或不显示(或考虑反序列化)的内容groups因此:

  1. 声明一些组并分配属性
  2. 在控制器中使用所需的组:反序列化和序列化将仅考虑属于至少一个已声明组的属性。

一个例子:

* 实体 *

class User implements EncoderAwareInterface
{
    /**
     * @ORM\Id
     * @ORM\Column(type="string")
     * @Assert\NotBlank(message = "user.username.not_blank")
     * @ORM\GeneratedValue(strategy="NONE")
     * @Serializer\Groups({"default"})
     */
    private $username;

    /**
     * @ORM\Column(type="string", nullable=true)
     * @Serializer\Groups("personal")
     */
    private $password;

    ...

* 控制器 *

/**
 * @ParamConverter(
 *     "userBody",
 *     class="Belka\AuthBundle\Entity\User",
 *     converter="fos_rest.request_body",
 *     options={"deserializationContext"={"groups"={"personal"}}}
 * )
 */
public function postAction($username, User $userBody, $_format)
{

这样,只有密码会反序列化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不丢失其特定属性的情况下将子实例反序列化为父对象?

来自分类Dev

如何在不包括属性名称的情况下将匿名对象序列化为JSON

来自分类Dev

如何在没有父元素的情况下将列表序列化为XML

来自分类Dev

如何在没有父元素的情况下将列表序列化为XML

来自分类Dev

如何在没有模式信息的情况下将C#对象序列化为xml?

来自分类Dev

如何在没有关联ID的情况下将关联序列化为JSON-API?

来自分类Dev

如何在不反转堆栈的情况下使用System.Text.Json将Stack <T>序列化为JSON?

来自分类Dev

如何在不使用对象的情况下序列化为JSON

来自分类Dev

如何在对象结构未知的情况下反序列化JSON对象

来自分类Dev

如何在不获得反序列化最新信息的情况下序列化对象的几个帧?

来自分类Dev

如何在不转义序列化程序的情况下返回 html 内容?

来自分类Dev

如何在不将转换器传递给DeserializeObject的情况下反序列化抽象项目列表?

来自分类常见问题

JSON.net:如何在不使用默认构造函数的情况下反序列化?

来自分类Dev

如何在不破坏代码风格的情况下使用RestSharp反序列化名为“ value”的属性?

来自分类Dev

如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

来自分类Dev

在给定XSD的情况下,如何在C#中进行多态反序列化?

来自分类Dev

如何在不丢失任何值的情况下反序列化具有重复键的JSON?

来自分类Dev

如何在不破坏代码风格的情况下使用RestSharp反序列化名为“ value”的属性?

来自分类Dev

如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

来自分类Dev

如何在不初始化的情况下声明反序列化的类参数数组?

来自分类Dev

如何在不需要包装器类型的情况下反序列化 JSON 数组?

来自分类Dev

如何使用Jackson将反序列化的JSON反序列化为忽略键的对象?

来自分类Dev

如何将json反序列化为PropertyType?

来自分类Dev

如何将XML反序列化为对象?

来自分类Dev

如何将JSON反序列化为Swift对象?

来自分类Dev

如何将XML反序列化为对象?

来自分类Dev

如何将XML反序列化为List <Object>

来自分类Dev

如何使用JavaScriptSerializer将JSON反序列化为元组

来自分类Dev

如何将Riak备份反序列化为JSON?

Related 相关文章

  1. 1

    如何在不丢失其特定属性的情况下将子实例反序列化为父对象?

  2. 2

    如何在不包括属性名称的情况下将匿名对象序列化为JSON

  3. 3

    如何在没有父元素的情况下将列表序列化为XML

  4. 4

    如何在没有父元素的情况下将列表序列化为XML

  5. 5

    如何在没有模式信息的情况下将C#对象序列化为xml?

  6. 6

    如何在没有关联ID的情况下将关联序列化为JSON-API?

  7. 7

    如何在不反转堆栈的情况下使用System.Text.Json将Stack <T>序列化为JSON?

  8. 8

    如何在不使用对象的情况下序列化为JSON

  9. 9

    如何在对象结构未知的情况下反序列化JSON对象

  10. 10

    如何在不获得反序列化最新信息的情况下序列化对象的几个帧?

  11. 11

    如何在不转义序列化程序的情况下返回 html 内容?

  12. 12

    如何在不将转换器传递给DeserializeObject的情况下反序列化抽象项目列表?

  13. 13

    JSON.net:如何在不使用默认构造函数的情况下反序列化?

  14. 14

    如何在不破坏代码风格的情况下使用RestSharp反序列化名为“ value”的属性?

  15. 15

    如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

  16. 16

    在给定XSD的情况下,如何在C#中进行多态反序列化?

  17. 17

    如何在不丢失任何值的情况下反序列化具有重复键的JSON?

  18. 18

    如何在不破坏代码风格的情况下使用RestSharp反序列化名为“ value”的属性?

  19. 19

    如何在字符串值包装在同名对象中的情况下彻底反序列化JSON

  20. 20

    如何在不初始化的情况下声明反序列化的类参数数组?

  21. 21

    如何在不需要包装器类型的情况下反序列化 JSON 数组?

  22. 22

    如何使用Jackson将反序列化的JSON反序列化为忽略键的对象?

  23. 23

    如何将json反序列化为PropertyType?

  24. 24

    如何将XML反序列化为对象?

  25. 25

    如何将JSON反序列化为Swift对象?

  26. 26

    如何将XML反序列化为对象?

  27. 27

    如何将XML反序列化为List <Object>

  28. 28

    如何使用JavaScriptSerializer将JSON反序列化为元组

  29. 29

    如何将Riak备份反序列化为JSON?

热门标签

归档