4

Symfony2/JSMSerializerBundle과 함께 작업합니다.JSMSerializerBundle을 사용하여 다차원 JSON API 응답을 비 직렬화

PHP 객체에 플랫 json 객체를 직렬화하는 것이 효과적입니다.

{ 
"Webmessage": { 
    "@version": "1.0", 
    "Header": { 
     "Country": "NL", 
     "Language": "NL" 
    }, 
    "Content": { 
     "Filters": { 
      "Sizes": { 
       "Size": [ 
        { 
         "@id": "241", 
         "#text": "3,5" 
        }, 
        { 
         "@id": "55", 
         "#text": "36" 
        } 
       ] 
      }, 
      "Colours": { 
       "Colour": [ 
        { 
         "@id": "159", 
         "#text": "wit" 
        }, 
        { 
         "@id": "54", 
         "#text": "zwart" 
        } 
       ] 
      } 
     } 
    } 
} 

} 직렬화 PHP로

내가 이런 걸 원하는 :하지만 내가 사용하는 API는 다차원 JSON 응답 제공

Array 
(
[sizes] => Array 
    (
     [0] => AppBundle\Entity\Filter Object 
     (
     [id:AppBundle\Entity\Filter:private] => 1 
     [text:AppBundle\Entity\Filter:private] => Heren 
     ) 

     [1] => AppBundle\Entity\Filter Object 
     (
     [id:AppBundle\Entity\Filter:private] => 2 
     [text:AppBundle\Entity\Filter:private] => Dames 
    ) 
    ) 

[colour] => Array 
    (
     [0] => AppBundle\Entity\Filter Object 
     (
     [id:AppBundle\Entity\Filter:private] =>56 
     [text:AppBundle\Entity\Filter:private] => Black 
     ) 

     [1] => AppBundle\Entity\Filter Object 
     (
     [id:AppBundle\Entity\Filter:private] => 212 
     [text:AppBundle\Entity\Filter:private] => Yellow 
    ) 
    ) 

를)

팁을 가지고 어떻게 이럴 수있어?

감사합니다.

+0

당신이'역 직렬화와 시도 유무 : http://api.symfony.com/2.3/Symfony/Component/Serializer/Normalizer/GetSetMethodNormalizer.html

여기로 json_encode에 대해 뭔가가있어 당신이 시리얼의 문서를 살펴 수있는 추가 조사를 위해

()'JMS '메소드? –

답변

1

아마도 먼저 디코딩 한 다음 노멀 라이저를 사용하여 엔티티를 생성 할 수 있습니다. 다음과 같이 입력하십시오 :

$array= json_decode($json, true); 
$valueToDenormalize = $array['value']; 

$normalizer = new GetSetMethodNormalizer(); 
$entity = $normalizer->denormalize($valueToDenormalize, 'Your\Class'); 

알고 싶습니다. 노멀 라이저가 이런 방식으로 작동하는지 모르겠지만 배열과 Symfony의 엔티티를 표준화하고 비정규 화하는 데 사용됩니다. http://symfony.com/doc/current/components/serializer.html

또는 노멀 : http://php.net/manual/en/function.json-decode.php