2

在 Symfony2 中,我有一个 Address 实体和一个 AddressList 实体。AddressList 实体构成了地址实体的集合。我有一个 JSON 响应需要映射到 AddressList 实体。

使用 JMS Serializer 映射时,AddressList 始终返回 null,如下所示:

$this->get('jms_serializer')->deserialize($json, 'Foo\Bar\AddressList', 'json');

现在我知道,如果我在根级别向 JSON 响应添加一个键(地址),那么它可以正常工作,因为它可以映射到响应对象中的那个键,即

{"addresses":[{...},{...}]}

但我希望它与下面给出的孤立对象数组一起使用。

谢谢!

JSON响应:

[{
  "property": "foo",
  "street": "bar",
  "town": "baz",
  "postcode": "123120"
},{
  "property": "baz",
  "street": "foo",
  "town": "bar",
  "postcode": "987654"
}]

这是地址实体:

<?php
namespace Foo\Bar;
class Address
{
    public $property;
    public $street;
    public $town;
    public $postcode;
    ...
    // Getters Setters
}

这是构成上述地址实体集合的地址列表实体。

<?php
namespace Foo\Bar;
use JMS\Serializer\Annotation\Type;
class AddressList
{
    /**
     * @Type("array<Foo\Bar\Address>")
     */
    public $addresses;
    ...
    // Getters Setters
}
4

0 回答 0