Symfony2 JSON Beispiel
Frage
Ich versuche mit Symfony2 ein JSON -Beispiel einzurichten.
Ich habe ein Testpaket, eine Testentität ("Nachricht") erstellt, das ORM usw. einrichten usw.
Das Nachricht (Tabelle) hat die folgenden Spalten: ID, Titel, Text
Ich versuche, eine Route */Mydomain/Meldung aufzudecken, die eine JSON -Schnittstelle einer Meldungstabelle (eine kleine Liste) aussetzen würde,
Die erste Methodik, die ich ausprobierte, war:
Erstellen Sie eine MessageController -Klasse, die verwendet Symfony\Component\HttpFoundation\Response
und hat eine solche Funktion:
public function testAction() {
$response = new Response(json_encode(**code_req_here**));
return $response;
}
und stellen Sie eine Route wie so:
test:
pattern: /test
defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
requirements: { _format: (xml|json), _method: GET }
- Ist das eine korrekte Methodik?
- Was mache ich auf die
code_req_here
?
Die zweite Methodik, die ich ausprobiert habe, war die Verwendung der FOS/RestBundle, aber es hat nicht geschafft, das Leitfaden so wie ich verstehe, also richtig zu vervollständigen.
- Bitte geben Sie einen kleinen Leitfaden zur (nur) mit FOS/RestBundle, um dies (nur) zu machen
Lösung
Ist das eine korrekte Methodik?
Ja, ich mag es, aber ich würde die Routing -Regel ein bisschen ändern:
test:
pattern: /test.{_format}
defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}
requirements: { _format: (xml|json), _method: GET }
Was stelle ich auf die code_req_here?
Setzen Sie das Array ein, das Sie in das JSON -Format konvertieren möchten. ex. Array (array ('id' => 1, 'value' => 'test'), array ('id' => 2, 'value' => 'Smart'))
Andere Tipps
Ich empfehle die Verwendung
http://jmsyst.com/bundles/jmsserializerbundle
$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);