Symfony2 JSON示例

时间:2011-04-27 22:58:41

标签: php json rest symfony

我正在尝试使用symfony2设置一个json示例 我已经创建了一个测试包,一个测试实体(“消息”),设置了orm等 消息(表格)包含以下列: ID,标题,文字
我正在尝试公开一个路由* / mydomain / message,它将json接口暴露给消息表(一个小列表)

我尝试的第一种方法是:

创建一个使用Symfony\Component\HttpFoundation\Response的MessageController类,其函数如下:

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上放了什么?
  3. 我尝试的第二种方法是使用FOS / RestBundle但是没有按照我的理解正确完成指南,所以

    1. 请提供一份关于如何(仅)使用FOS / RestBundle
    2. 的小指南

2 个答案:

答案 0 :(得分:13)

  

这是一种正确的方法吗?

是的我喜欢它,但我会修改路由规则有点像这样:

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

我在code_req_here上放了什么?

将要转换的数组放入json格式。 恩。 array(array('id'=> 1,'value'=>'test'),array('id'=> 2,'value'=>'smart'))

答案 1 :(得分:1)

我建议使用

http://jmsyst.com/bundles/JMSSerializerBundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);