2014-09-10 7 views
6

Immaginate Ho un oggetto semplice, strutturata in modo simile a quello qui sotto:E 'possibile serializzare un array alla radice di un oggetto con Serializer JMS?

Object (SomeClass) { 
    $someOtherData (array) [ 
     ... 
    ] 

    $data (array) [ 
     "key": "value", 
     "key": "value", 
     "key": "value", 
     "key": "value" 
    ] 
} 

Se dovessi serializzare questo oggetto con JMS Serializer a JSON, mi piacerebbe avere un risultato che ha una struttura identica, ma con $ dati essendo sull'elemento radice, in questo modo:

{ 
    "someOtherData": { 
     ... 
    }, 
    "data": { 
     "key": "value", 
     "key": "value", 
     "key": "value", 
     "key": "value" 
    } 
} 

ho bisogno di avere il contenuto della variabile di dati $ essere sulla radice del risultato serializzato, cioè:

{ 
    "someOtherData": { 
     ... 
    }, 
    "key": "value", 
    "key": "value", 
    "key": "value", 
    "key": "value" 
} 

È possibile? Se é cosi, come?

risposta

7

Risulta che c'è un'annotazione per questo. E 'il @Inline annotazione:

use JMS\Serializer\Annotation\Inline; 

// ... 

/** 
* @var array 
* 
* @Inline 
*/ 
protected $variables; 
0

Penso che il metodo migliore sia l'utilizzo di SerializationHandler. Qui puoi trovare un po 'di documentazione: http://jmsyst.com/libs/serializer/master/handlers.

+0

Hmmm, ho cercato che da quando ho postato questa domanda - unica cosa è, io continuo a ricevere 'null' come il risultato della serializzazione, non importa quello che io ritorno dal gestore. Weird ... – Seer

+0

potresti creare un gist con file di classe oggetto e SerializerHandler? – skler

+1

Nevermind! Ho trovato esattamente quello che stavo cercando. L'annotazione @Inline. – Seer

Problemi correlati