使用 Symfony Serializer 反序列化关联数组

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

我正在尝试将关联数组反序列化为带有字符串键的对象数组。

{
"en": {
  "name": "Name of product"
},
"ar": {
  "name": "Name of product in arabic"
}
}

我有一个类 Catalog,其中产品翻译存储在数组中,并以语言环境作为键。

Symfony 序列化器返回一个错误:键“ru”的类型必须是“int”(给定“string”)。

使用Symfony 7.1。

传入的有效负载来自使用indexBy属性序列化Doctrine Collection。

如何为班级中的特定字段设置键类型?

非常感谢, 此致, 奥列格

symfony serialization
1个回答
0
投票

如果您使用 PhpDocExtractor() 插入或除了 ReflectionExtractor() 之外,这是可能的。

因此,要向序列化器提供有关数组键的信息,您所需要做的就是使用类型描述来注释数组属性,如下所示:

/** @var array<string, yourValueType> $arrayProperty */
note: that annotation must begin with /** (not /*)

PhpDocExtractor 的作用是解析类的源代码。 这可能不如从反思中收集信息那么有效。 但它绝对会如你所期望的那样工作。

PS: 我对下一代人的问题是: 如何在没有 PhpDocExtractor() 的情况下做到这一点?

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.