Я создаю проект symfony2 и с помощью пакета JMS serializer для сериализации моего объекта для хранения базы данных (я знаю, что это не лучший способ).JMS serializers error, когда свойство не существует
Но теперь моя проблема: , когда я изменяю свойство моего объекта и десериализую строку Json, сериализатор JMS игнорирует несуществующие свойства, а не бросает ошибку, что на самом деле здорово. Но я хотел бы зарегистрировать такое событие.
Ниже приведен пример, чтобы проиллюстрировать мой вопрос
JSon строку из моей базы данных:
$dataToBeDeserialized = {"title":"testing123","text":"Lorem Ipsum"}
TestClass: метод
/**
* @Type("string")
*/
protected title;
/**
* @Type("string")
*/
protected text;
Deserialize:
$this->serializer = SerializerBuilder::create()->build();
$this->serializer->deserialize($dataToBeDeserialized, 'TestClass', 'json');
Это рес ULTS в:
TestClass {
title: "testing123",
text: "Lorem Ipsum"}
Но когда я изменить TestClass и переименовать (или удалить) право собственности, скажем, «title2», The десериализатор игнорирует «название» атрибут в строку JSON. и что приводит к:
TestClass {
title2: "",
text: "Lorem Ipsum"}
Ну нет проблем нет. Данные в базе данных неверны. Но я хотел бы зарегистрировать эту проблему. Как мне это сделать? Я не хочу, если это возможно, использовать код сериализатора JMS (так как я больше не могу его обновлять). И поиск пустых свойств в моем TestClass также не самый лучший способ, так как они могут быть нулевыми.