РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
955 of 1361 menu

Метод deserialize

Метод deserialize класса Serializer выполняет обратное преобразование: принимает строку с данными (например, JSON или XML) и превращает её в объект заданного класса. Первым параметром передаётся строка с данными, вторым - целевой класс, третьим - формат данных (например, 'json'). Метод возвращает готовый объект.

Синтаксис

$serializer->deserialize(string $data, string $type, string $format, array $context = [])

Пример

Давайте десериализуем JSON-строку в объект класса Article:

<?php namespace AppService; use AppEntityArticle; use SymfonyComponentSerializerSerializer; use SymfonyComponentSerializerEncoderJsonEncoder; use SymfonyComponentSerializerNormalizerObjectNormalizer; $encoders = [new JsonEncoder()]; $normalizers = [new ObjectNormalizer()]; $serializer = new Serializer($normalizers, $encoders); $json = '{"title":"hello","text":"abcde","views":1}'; $article = $serializer->deserialize($json, Article::class, 'json'); echo $article->getTitle(); ?>

Результат выполнения кода:

"hello"

Пример

Давайте десериализуем JSON-массив в массив объектов:

<?php namespace AppService; use AppEntityArticle; use SymfonyComponentSerializerSerializer; use SymfonyComponentSerializerEncoderJsonEncoder; use SymfonyComponentSerializerNormalizerObjectNormalizer; $encoders = [new JsonEncoder()]; $normalizers = [new ObjectNormalizer()]; $serializer = new Serializer($normalizers, $encoders); $json = '[{"title":"article 1"},{"title":"article 2"}]'; $articles = $serializer->deserialize($json, Article::class . '[]', 'json'); foreach ($articles as $article) { echo $article->getTitle() . ' '; } ?>

Результат выполнения кода:

"article 1 article 2 "

Пример

Давайте передадим контекст для управления процессом десериализации:

<?php namespace AppService; use AppEntityArticle; use SymfonyComponentSerializerSerializer; use SymfonyComponentSerializerEncoderJsonEncoder; use SymfonyComponentSerializerNormalizerObjectNormalizer; $encoders = [new JsonEncoder()]; $normalizers = [new ObjectNormalizer()]; $serializer = new Serializer($normalizers, $encoders); $json = '{"title":"abcde","views":5}'; $article = $serializer->deserialize($json, Article::class, 'json', [ 'allow_extra_attributes' => false, ]); echo $article->getViews(); ?>

Результат выполнения кода:

"5"

Смотрите также

  • класс Serializer,
    который выполняет сериализацию и десериализацию данных
  • метод serialize,
    который преобразует объект в строку данных
  • метод denormalize,
    который преобразует массив в объект
  • метод normalize,
    который преобразует объект в массив
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить