如何使用JMS和Symfony反序列化嵌套的JSON对象?

时间:2020-04-22 09:28:11

标签: json symfony4 jmsserializerbundle jms-serializer

我试图通过Symfony 4.4(LTS)使用JMS将一些JSON反序列化为普通的旧PHP对象。

JSON看起来像这样:

{
    "id": "c9cde632-ca23-4ed0-8b6d-05dfcbf1d994",
    "someProperty": "This is the value",
    "active": true,
    "nestedProperty": {
        "id": "78d46fb8-5f1a-4a00-89a6-4b96482b9ef6",
        "name": "The Name"
    }
}

我有一个类似于以下内容的PHP类:

<?php

class NestedExample
{
    /** @var string $id */
    private $id;

    /** @var string $someProperty */
    private $someProperty;

    /** @var bool $active */
    private $active;

   // Fluent Getters and Setters
   // ...
}

这正确地将上述字段反序列化为对象。

但是,我也想通过以下操作将嵌套对象的值也添加到此类中:

/** @var string $nestedPropertyId */
private $nestedPropertyId;

/** @var string $nestedPropertyName */
private $nestedPropertyName;

甚至:

private $nestedProperty;

// Fluent Getter and Setter for $nestedProperty

/** @VirtualProperty("nestedPropertyId") */
public function getNestedPropertyId () 
{
    return $this->getNestedProperty()->id;
}

但是没有任何效果。

我做错了吗?我从不打算将此类序列化回JSON。转型将永远是一种方式。

0 个答案:

没有答案
相关问题