Php 为什么JMS序列化程序在反序列化时不返回正确的数组键?

Php 为什么JMS序列化程序在反序列化时不返回正确的数组键?,php,arrays,annotations,deserialization,jms-serializer,Php,Arrays,Annotations,Deserialization,Jms Serializer,我正在使用JMS注释在持久化时序列化PHP对象。对象的属性之一是带有整数键的整数数组。我使用了以下注释,如中所述: 然而,在反序列化对象时,数组键“123”被替换为“0”。所有其他属性的序列化和反序列化工作正常,只是这个关联数组没有被正确反序列化。我错过什么了吗?在反序列化过程中是否有一些方便的方法来保存数组键?我通过使用“string_123”形式的字符串键而不是整数键来实现这一点,然后在反序列化后在PHP中将其转换回具有整数键的数组。这是可行的,但我还没有找到解决原来问题的办法。 /**

我正在使用JMS注释在持久化时序列化PHP对象。对象的属性之一是带有整数键的整数数组。我使用了以下注释,如中所述:


然而,在反序列化对象时,数组键“123”被替换为“0”。所有其他属性的序列化和反序列化工作正常,只是这个关联数组没有被正确反序列化。我错过什么了吗?在反序列化过程中是否有一些方便的方法来保存数组键?

我通过使用“string_123”形式的字符串键而不是整数键来实现这一点,然后在反序列化后在PHP中将其转换回具有整数键的数组。这是可行的,但我还没有找到解决原来问题的办法。
/**
 * @var int[]
 *
 * @Serializer\Type("array<integer, integer>")
 */
private $intArrayWithIntKeys;
{..., "int_array_with_int_keys":{"123":456}}