Symfony2 JSON eksempel

stemmer
13

Jeg prøver å sette opp en json eksempel med symfony2.
Jeg har laget en test pakke, en test enhet ( Message), satt opp orm etc
The Message (tabell) har følgende kolonner: id, tittel, tekst
Jeg prøver å avsløre en rute * / mittdomene / melding som ville utsette en .json grensesnitt til meldinger bord (en liten liste)

Den første metoden som jeg prøvde var:

Lag en MessageController klasse som bruker Symfony\Component\HttpFoundation\Responseog har en funksjon som dette:

public function testAction() {  
    $response = new Response(json_encode(**code_req_here**));  
    return $response;  
}

og sette en rute som så:

test:  
    pattern: /test  
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}  
    requirements: { _format: (xml|json), _method: GET }  
  1. Dette er en riktig metode?
  2. hva gjør jeg satt på code_req_here?

den andre metoden som jeg prøvde var ved hjelp av FOS / RestBundle men klarte ikke å fullføre guiden riktig som jeg forstår, så

  1. Vennligst gi en liten guide på hvordan du gjør (bare) dette med FOS / RestBundle
Publisert på 27/04/2011 klokken 22:58
kilden bruker
På andre språk...                            


2 svar

stemmer
13

Dette er en riktig metode?

Ja, jeg liker det, men jeg ville endre routing styre litt som dette:

test:
    pattern: /test.{_format}
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
    requirements: { _format: (xml|json), _method: GET }

hva gjør jeg satt på code_req_here?

Sett array som du ønsker å konvertere til JSON-format. ex. matrise (array ( 'id' => 1 'verdi' => 'test'), en matrise ( 'id' => 2, 'verdi' => 'smart'))

Svarte 22/08/2011 kl. 03:55
kilden bruker

stemmer
1

Jeg anbefaler å bruke

http://jmsyst.com/bundles/JMSSerializerBundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);
Svarte 29/12/2012 kl. 17:11
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more