xml - FOSRestBundle 输出错误的 xml

标签 xml rest symfony fosrestbundle

当我请求 xml 时,我的 XML 输出看起来很奇怪。

Controller :

use FOS\RestBundle\Controller\Annotations as REST;
class RestController {
    /**
     * @REST\View
     */
    public function getAgenciesAction() {
      return array("bb"=>array('zz'=>'vv'),'zz');
    }
}

请求 header : 接受:application/xml

响应:

<?xml version="1.0" encoding="UTF-8"?>
<result>
  <entry>
    <entry><![CDATA[vv]]></entry>
  </entry>
  <entry><![CDATA[zz]]></entry>
</result>

为什么只返回结束节点而不返回所有键和值?

最佳答案

FOSRestBundle 中的 xml 序列化器不序列化带有键的数组。每个数组条目的结果为 <entry>在响应中,无论 key 如何。您示例中的输出是正确的。键仅在 json 输出中相关。

序列化实体具有正确的输出,因为该字段将导致 <field>value</field>

示例 Controller

/**
 * @ApiDoc(
 *     description="Returns the own user details",
 *     statusCodes={
 *         200="Returned when successful",
 *         403="Returned when missing permissions",
 *     }
 * )
 *
 * @Rest\Get("/users/me")
 * @Rest\View(serializerGroups={"details"})
 */
public function getMeAction()
{
    $user = $this->getUser();

    return array('user' => $user);
}

和响应。你看,关键user输出为 <entry> .

<?xml version="1.0" encoding="UTF-8"?>
<result>
  <entry>
    <id><![CDATA[517781e2e707a00217000000]]></id>
    <username><![CDATA[admin]]></username>
    <email><![CDATA[admin@example.com]]></email>
    <company><![CDATA[acme]]></company>
  </entry>
</result>

关于xml - FOSRestBundle 输出错误的 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16271896/

相关文章:

php - javascript 不通过 php 代码发送数据

python - 无论数据源如何,使用 Django/Django Rest Framework 验证和保存数据的正确过程是什么?

php - 如何在 Symfony 2 表单中验证日期时间格式 "yyyy-MM-ddTHH:mm:ss.sssZ"

entity-framework - 向 sylius 核心包添加新实体的推荐方法?

java - 在 Android 中从 HTTP 检索 XML/流的最佳实践

xml - 使用 VBA 将 XML 网站导入 Access

rest - 无法访问 Swagger 2 UI,部署在外部 tomcat 上的 Spring Boot 应用程序

php - FOSRestBundle,过滤 JSON 响应中的对象属性

c# - 如何在不将整个文档加载到内存的情况下处理 Xml 文件?

java - 具有现有 REST 后端的 GWT