Tworzę projekt symfony2 i za pomocą pakietu serializatora JMS do serializacji mojego obiektu do przechowywania bazy danych (wiem, że to nie jest najlepszy sposób).Błąd serializatora JMS, gdy właściwość nie istnieje
Ale teraz mój problem polega na tym, że , kiedy zmieniam właściwość mojego obiektu i deserializuję ciąg Json, serializator JMS ignoruje nieistniejące właściwości zamiast rzucać błąd, który jest naprawdę świetny. Chciałbym jednak zarejestrować takie wydarzenie.
Poniżej jest przykład do zilustrowania moje pytanie
JSON ciąg z mojej bazy danych:
$dataToBeDeserialized = {"title":"testing123","text":"Lorem Ipsum"}
TestClass: metoda
/**
* @Type("string")
*/
protected title;
/**
* @Type("string")
*/
protected text;
Cofnięcie:
$this->serializer = SerializerBuilder::create()->build();
$this->serializer->deserialize($dataToBeDeserialized, 'TestClass', 'json');
res ta ÜLTS w:
TestClass {
title: "testing123",
text: "Lorem Ipsum"}
Ale kiedy mogę zmienić TestClass i zmienić (lub usunąć) tytuł do, powiedzmy, "TITLE2" The Deserializator ignoruje atrybut "title" w ciąg JSON. i to powoduje:
TestClass {
title2: "",
text: "Lorem Ipsum"}
Cóż, nie ma problemu. Dane w bazie danych są błędne. Ale chciałbym zarejestrować ten problem. Jak mam to zrobić? Nie chcę wprowadzać w błąd kodu serializatora JMS, jeśli to możliwe (ponieważ nie mogę go już zaktualizować). A szukanie pustych właściwości w mojej klasie TestClass nie jest najlepszym rozwiązaniem, ponieważ mogą one mieć wartość zerową.