Как я могу создать файл JSON из объекта с сериализатором? - PullRequest
2 голосов
/ 08 октября 2019

Это мой объект $ input:

$input = $this->em->getRepository(Data::class)->findAll();

  foreach($input as &$arr){
        $arr->{"Sunshine"} = 'Clouds';
    }

Вывод $ input:

Data {#1523 ▼
  -id: 23
  -name: "cat"
  -timestamp: DateTime @1570445917 {#1517 ▶}
  +"Sunshine": "Clouds"
}

Я использую сериализатор для создания файла JSON $data

  // Serialize your object in JSON
  $context = [
   'circular_reference_handler' => function ($object) {
        return $object->getId();
      },
      'circular_reference_limit' => 0,
    ];

  $data = $serializer->serialize($input, 'json', $context);

$ data:

"[{"id":21,"name":"cat","timestamp":"07.10.2019"}] ◀"

Интересно, почему «Sunshine» отсутствует в файле JSON. Это как-то связано с +? Что значит +? 1016 *

1 Ответ

1 голос
/ 08 октября 2019

Я думаю, что вы неправильно назначаете ключ. Ключ должен быть назначен так:

$arr['keyName'] = $value

Вы назначаете его следующим образом:

$arr->{"keyName"} = $value

Я надеюсь, что помог вам с этим ответом!

...