簡體   English   中英

Symfony Serializer 組件:反序列化混合類型的對象數組

[英]Symfony Serializer component: Deserialize array of objects of mixed types

我想知道是否有一種方法可以反序列化包含不同類型對象的數組。 我構建了一些可以序列化和反序列化特定類型的對象數組的東西,如下所示:

$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 方法名稱的對象,因此我認為您需要針對該特定用例進行一些額外的配置。

檢查序列化接口和抽象類以獲取更多詳細信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM