在 Symfony 2.6 中使用 JMS Serializer 添加根元素名称
Add a root element name using JMS Serializer with Symfony 2.6
我已经使用 Symfony 2.6
与 FOSRestBundle
和 JMSSerializerBundle
实现了 Web 服务。
尽管我将 xml_root_name: request
放在配置文件中,但我还是无法获得名为 request
的根元素。
我有一个包含以下信息的 config\serializer\Entity.Request.yml
文件:
Tvjp\RequestBundle\Entity\Request:
exclusion_policy: ALL
xml_root_name: request
properties:
id:
expose: true
type: integer
label:
expose: true
type: string
issuer:
expose: true
type: string
当我尝试访问单个 request
时,这就是我在 XML 中得到的结果:
<result>
<id>23</id>
<label><![CDATA[ test label ws post ]]></label>
<issuer><![CDATA[ test issuer ws post ]]></issuer>
</result>
我在 json 中得到的是:{"id":23,"label":"test label ws post","issuer":"test issuer ws post"}
知道我在这里做错了什么吗?
我终于设法在实体 class 上使用注释而不是使用 config\serializer\Entity.Request.yml
文件使其工作。
所以我删除了文件 config\serializer\Entity.Request.yml
,这是我的实体 Request
文件:
use JMS\Serializer\Annotation\ExclusionPolicy,
JMS\Serializer\Annotation\Expose,
JMS\Serializer\Annotation\Type,
JMS\Serializer\Annotation\XmlRoot;
/**
* Request
* @ExclusionPolicy("all")
* @XmlRoot("request")
*/
class Request{
/**
* @var integer
* @Expose
* @Type("integer")
*/
private $id;
/**
* @var string
* @Expose
* @Type("string")
*/
private $label;
/**
* @var string
* @Expose
* @Type("string")
*/
private $issuer;
[...]
}
我已经使用 Symfony 2.6
与 FOSRestBundle
和 JMSSerializerBundle
实现了 Web 服务。
尽管我将 xml_root_name: request
放在配置文件中,但我还是无法获得名为 request
的根元素。
我有一个包含以下信息的 config\serializer\Entity.Request.yml
文件:
Tvjp\RequestBundle\Entity\Request:
exclusion_policy: ALL
xml_root_name: request
properties:
id:
expose: true
type: integer
label:
expose: true
type: string
issuer:
expose: true
type: string
当我尝试访问单个 request
时,这就是我在 XML 中得到的结果:
<result>
<id>23</id>
<label><![CDATA[ test label ws post ]]></label>
<issuer><![CDATA[ test issuer ws post ]]></issuer>
</result>
我在 json 中得到的是:{"id":23,"label":"test label ws post","issuer":"test issuer ws post"}
知道我在这里做错了什么吗?
我终于设法在实体 class 上使用注释而不是使用 config\serializer\Entity.Request.yml
文件使其工作。
所以我删除了文件 config\serializer\Entity.Request.yml
,这是我的实体 Request
文件:
use JMS\Serializer\Annotation\ExclusionPolicy,
JMS\Serializer\Annotation\Expose,
JMS\Serializer\Annotation\Type,
JMS\Serializer\Annotation\XmlRoot;
/**
* Request
* @ExclusionPolicy("all")
* @XmlRoot("request")
*/
class Request{
/**
* @var integer
* @Expose
* @Type("integer")
*/
private $id;
/**
* @var string
* @Expose
* @Type("string")
*/
private $label;
/**
* @var string
* @Expose
* @Type("string")
*/
private $issuer;
[...]
}