Symfony2 JSON 示例

发布于 2024-11-04 05:23:07 字数 860 浏览 2 评论 0原文

我正在尝试使用 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 上添加什么内容?

我尝试的第二种方法是使用 FOS/RestBundle,但按照我的理解,未能正确完成该指南,因此

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

I'm trying to set up a json example using symfony2.
I've created a test bundle, a test entity ("Message"), set up the orm etc
The Message (table) has the following columns: id, title, text
I'm trying to expose a route */mydomain/message that would expose a json interface to messages table (a small list)

The first methodology I tried was:

Create a MessageController class that uses Symfony\Component\HttpFoundation\Response and has a function like this:

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

and set a route like so:

test:  
    pattern: /test  
    defaults: { _controller: myProjectmyTestBundle:Message:test, _format: json}  
    requirements: { _format: (xml|json), _method: GET }  
  1. is this a correct methodology?
  2. what do I put on the code_req_here?

the second methodology I tried was by using the FOS/RestBundle but didn't manage to complete the guide correctly as I understand, so

  1. please provide a small guide on how to do (just) this with FOS/RestBundle

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

画骨成沙 2024-11-11 05:23:07

这是正确的方法吗?

是的,我喜欢它,但我会修改路由规则,如下所示:

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' => '测试'), array('id' => 2, 'value' => '智能'))

is this a correct methodology?

Yes I like it but I would modify the routing rule a bit like this:

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

what do I put on the code_req_here?

Put the array that you want to convert to json format.
ex. array(array('id' => 1, 'value' => 'test'), array('id' => 2, 'value' => 'smart'))

很酷不放纵 2024-11-11 05:23:07

我建议使用

http://jmsyst.com/bundles/JMSSerializerBundle

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

I recommend using

http://jmsyst.com/bundles/JMSSerializerBundle

$serializer = $container->get('jms_serializer');
$serializer->serialize($data, 'json'); // json|xml|yml
$data = $serializer->deserialize($inputStr, $typeName, $format);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文