Пример Symfony2 JSON - PullRequest
       4

Пример Symfony2 JSON

13 голосов
/ 28 апреля 2011

Я пытаюсь настроить пример json, используя symfony2.
Я создал тестовый пакет, тестовую сущность («Сообщение»), настроил orm и т. Д.
Сообщение (таблица) имеет следующие столбцы: id, title, text
Я пытаюсь выставить маршрут * / mydomain / message, который бы выставлял интерфейс json для таблицы сообщений (небольшой список)

Первая методология, которую я попробовал, была:

Создайте класс MessageController, который использует Symfony\Component\HttpFoundation\Response и имеет такую ​​функцию:

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

и установите маршрут так:

test:  
    pattern: /test  
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}  
    requirements: { _format: (xml|json), _method: GET }  
  1. это правильная методология?
  2. что мне надеть code_req_here?

вторая методология, которую я попробовал, заключалась в использовании FOS / RestBundle, но мне не удалось правильно завершить руководство, как я понимаю, поэтому

  1. предоставьте небольшое руководство о том, как (просто) сделать это с помощью FOS / RestBundle

Ответы [ 2 ]

13 голосов
/ 22 августа 2011

это правильная методология?

Да, мне это нравится, но я бы немного изменил правило маршрутизации следующим образом:

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

что мне поставить на code_req_here?

Поместите массив, который вы хотите преобразовать в формат json. ех. массив (массив ('id' => 1, 'value' => 'test'), массив ('id' => 2, 'value' => 'smart'))

1 голос
/ 29 декабря 2012

Я рекомендую использовать

http://jmsyst.com/bundles/JMSSerializerBundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...