Коллекция десериализации JMSSerializer

У меня проблема с десериализацией сериализованной коллекции коллекций доктрин. Не удалось найти документы об этом и любых темах, и я новичок в JMSSerializer. Когда я пытаюсь десериализовать с помощью:

$collection = $serializer->deserialize($jsonData,'Doctrine\Common\Collections\ArrayCollection','json');

$коллекция пуста

Когда я устанавливаю значение null вместо имени класса, у меня появляется массив assoc в результате. Есть ли элегантный способ десериализовать этот json?

РЕДАКТИРОВАТЬ: Извините. Вот сериализованная коллекция:

[{"id":88,"name":"Poland","created_at":"2012-09-28T11:59:06+0000"},{"id":90,"name":"Great Britain","created_at":"2012-09-28T11:59:06+0000"}]

person mrMantir    schedule 01.10.2012    source источник
comment
Вы можете вставить json сериализованного ArrayCollection в вопрос?   -  person Max Małecki    schedule 02.10.2012


Ответы (1)


Ха! Нашел, что я сделал не так :) Я дал методу десериализации неправильный тип. Должно быть:

$serializer->deserialize($jsonData, 'ArrayCollection<EntityName>', 'json');

и это дало мне красивый набор сущностей.

person mrMantir    schedule 02.10.2012
comment
Где вы нашли это решение? - person tolgap; 21.10.2012
comment
только по опыту. К сожалению, документы не найдены, но похоже, что метод десериализации может принимать в качестве аргумента типа те же строки, которые определены, например, здесь: типы - person mrMantir; 23.10.2012
comment
именно то, что я искал. спасибо за найденное решение! - person Casey; 05.02.2013
comment
Извините, что оживляю старый вопрос, однако мне было интересно, делается ли это внутри контроллера или представления? Прошло 2 года, а документов все еще не хватает. - person Doug; 04.07.2014
comment
Вы сэкономили мне много работы, это решение отлично работает, спасибо - person Robert; 22.07.2016
comment
Я рад, что это все еще полезно :) - person mrMantir; 22.07.2016