首页 > 解决方案 > 非规范化时集合属性的 Symfony SerializedName 等效项

问题描述

我有一个 json 请求

{
   applicant_info:{
      "email": "jhon.doe@gmail.com",
      "given_name": "jhon",
      "family_name": "doe"
   },
   productId: 12
}

具有如下的 dto 类:

class Dto
{
    /**
     * @var int
     * @SerializedName("product_id")
     */
    public $productId;

    /**
     * @var Collection
     * @SerializedName("applicant_info")
     */
    public $applicantInfo = [
        'email',
        'givenName',
        'familyName'
    ];
}

现在,当我在下面使用反序列化时,我不确定如何将given_namefamily_name从 request 转换为 givenNamefamilyName就像我使用@SerializedName将product_id申请人信息转换为productId申请人信息一样

$serializer->deserialize(
            $request->getContent(),
            Dto::class,
            self::FORMAT_JSON
        );

任何帮助将不胜感激

标签: phpsymfonyserializationsymfony4

解决方案


推荐阅读