[英]FOSRestBundle output wrong xml
當我請求xml時,我的XML輸出看起來很奇怪。
控制器:
use FOS\RestBundle\Controller\Annotations as REST;
class RestController {
/**
* @REST\View
*/
public function getAgenciesAction() {
return array("bb"=>array('zz'=>'vv'),'zz');
}
}
請求標頭: Aceept: application/xml
回應 :
<?xml version="1.0" encoding="UTF-8"?>
<result>
<entry>
<entry><![CDATA[vv]]></entry>
</entry>
<entry><![CDATA[zz]]></entry>
</result>
為什么只返回結束節點而不是所有鍵和值?
FOSRestBundle中的xml序列化程序不使用密鑰序列化數組。 無論密鑰如何,每個數組條目都將在響應中作為<entry>
。 示例中的輸出是正確的。 鍵僅在json輸出中相關。
序列化實體具有正確的輸出,因為該字段將導致<field>value</field>
示例控制器
/**
* @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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.