2017-09-22 2 views
0
나는 시리얼 구성 요소의 심포니를 사용하고

, 첨부 된 CSV를 인코더와 다음 JSON 형식에 직렬화 예와 객체, 거기 방법 :심포니

:

$encoders = array(new XmlEncoder(), new JsonEncoder()); 
    $normalizers = array(new ObjectNormalizer()); 

    $person = new \AppBundle\Entity\Person(); 
    $person->setName('foo'); 
    $person->setAge(99); 
    $person->setSportsman(false); 

    // return new JsonResponse($person); // empty 

    $serializer = new Serializer($normalizers, $encoders); 

    /** 
    * 1 param - object to be serialized 
    * 2 param - proper encoder, in this case JsonEncoder 
    * @var [type] 
    */ 
    $jsonContent = $serializer->serialize($person, 'json'); 

    return new Response($jsonContent); 

위의 예는 이런 식으로 뭔가를 반환은

{"id":null,"age":99,"name":"foo","sportsman":false} 

그러나 나는 어떻게 CSV 대신 JSON

+2

https://symfony.com/blog/new-in-symfony-3-2-csv-and-yaml- 인코더 -에 - serializer ??? –

답변

1

CSV 및 YAML에, 같은을 수행하는 을 알고 싶어요 인코더는 당신이 더 많은 정보를 찾을 수 있습니다

// instantiation, when using it as a component 
use Symfony\Component\Serializer\Serializer; 
use Symfony\Component\Serializer\Encoder\CsvEncoder; 
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer; 

$serializer = new Serializer([new ObjectNormalizer()], [new CsvEncoder()]); 

// instantiation, when using it inside the Symfony framework 
$serializer = $container->get('serializer'); 

// encoding contents in CSV format 
$serializer->encode($data, 'csv'); 

// decoding CSV contents 
$data = $serializer->decode(file_get_contents('data.csv'), 'csv'); 

심포니 3.2 이후 추가되었습니다 https://symfony.com/blog/new-in-symfony-3-2-csv-and-yaml-encoders-for-serializer