在 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
}