gpt4 book ai didi

php - Symfony 串行器组件 : Deserialize array of objects of mixed types

转载 作者:行者123 更新时间:2023-12-03 11:23:05 25 4
gpt4 key购买 nike

我想知道是否有一种方法可以反序列化包含不同类型对象的数组。我构建了一些可以序列化和反序列化特定类型的对象数组的东西,如下所示:

$nodes = [
new PostNode(),
new PostNode(),
new PostNode()
];

$serializer = new Serializer( [
new ObjectNormalizer(),
new ArrayDenormalizer(),
], [ new JsonEncoder() ] );

$data = $serializer->serialize($nodes, 'json');

$deSerializedNodes = $serializer->deserialize( $data, PostNode::class . '[]', 'json' );

我得到了我插入的数组,所以很好。现在我想知道我是否可以像这样序列化和反序列化一个数组:
$nodes = [
new PostNode(),
new PostNode(),
new PostNode(),
new FormNode(),
new FormNode()
];

最佳答案

您只能序列化多个对象类型的数组,如下所示:

$serializer = new Serializer([new GetSetMethodNormalizer(), new ArrayDenormalizer()], [new JsonEncoder()]);

$array = [new Foo('Radhi'), new Bar(26)];

$json = $serializer->serialize($array, 'json');
但是对于反序列化不同对象类型的数组,序列化程序不清楚,特别是对于具有相同 getter/setter 方法名称的对象,因此我认为您需要针对该特定用例进行一些额外的配置。
查询 Serializing Interfaces and Abstract Classes更多细节。

关于php - Symfony 串行器组件 : Deserialize array of objects of mixed types,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com