Разобрать ответ JSON с помощью пакета сериализатора JMS Symfony2 для класса

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

0 ответов

Другие вопросы по тегам