当我请求 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/