В Symfony2 у меня есть сущность Address и сущность AddressList. Сущность AddressList создает коллекцию сущностей Address. У меня есть ответ JSON, который необходимо сопоставить с объектом AddressList.
AddressList всегда возвращает ноль при отображении с использованием JMS Serializer, например так:
$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
}
Вот объект AddressList, который создает коллекцию вышеуказанного объекта Address.
<?php
namespace Foo\Bar;
use JMS\Serializer\Annotation\Type;
class AddressList
{
/**
* @Type("array<Foo\Bar\Address>")
*/
public $addresses;
...
// Getters Setters
}
Задача ещё не решена.
Других решений пока нет …