Symfony2 JSON 示例

Posted

技术标签:

【中文标题】Symfony2 JSON 示例【英文标题】:Symfony2 JSON example 【发布时间】:2011-08-14 06:36:48 【问题描述】:

我正在尝试使用 symfony2 设置一个 json 示例。 我创建了一个测试包、一个测试实体(“消息”)、设置了 orm 等消息(表格)具有以下列:id、title、text 我正在尝试公开一个路由 */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   
    这是一种正确的方法吗? 我在code_req_here 上放什么?

我尝试的第二种方法是使用 FOS/RestBundle,但没有按照我的理解正确完成指南,所以

    请提供一份关于如何(仅)使用 FOS/RestBundle 进行此操作的小指南

【问题讨论】:

下一个问题请使用code formatting。 【参考方案1】:

这是一种正确的方法吗?

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

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'))

【讨论】:

【参考方案2】:

我推荐使用

http://jmsyst.com/bundles/JMSSerializerBundle

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

【讨论】:

以上是关于Symfony2 JSON 示例的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Symfony2 中将 Json 绑定到实体中

如何在 symfony2 中将 json 转换为 php 对象?

json_encode 在我的 Symfony2 控制器中不起作用

如何在 symfony2 控制器中发送 JSON 响应

如何在Symfony2中将json渲染成树枝

Symfony2 在 AJAX 调用中返回空 JSON,而变量不为空