在 Symfony2 中使用 jms/serializer-bundle 序列化 XML 负载的随机键值对
Serialising random key-value pair of XML payload with jms/serializer-bundle in Symfony2
下面的 Key randoms
可以包含任何键值对,因此无论您输入什么(只要它在值键对中)都将被接受。例如<tomato>nonsense</tomato>
。但是我的映射没有拾取它们,所以我得到了 randoms
的空数组。我错过了什么?
注意:我在下面列出了我尝试过的所有 public $randoms;
。我在 Symfony2 中使用 "jms/serializer-bundle": "0.13.0",
composer 包。
有效载荷
<?xml version="1.0" encoding="UTF-8"?>
<product id="1">
<title>Samsung</title>
<randoms>
<review>710</review>
<popularity>good</popularity>
</randoms>
</product>
模型映射
namespace Application\BackendBundle\Model\Api\Xml;
use JMS\Serializer\Annotation as Serializer;
/**
* @Serializer\XmlRoot("product")
*/
class Product
{
/**
* @Serializer\Type("string")
*/
public $title;
/**
* @Serializer\Type("array<string, string>")
* @Serializer\XmlKeyValuePairs
*/
public $randoms;
/**
* @Serializer\Type("array<string, string>")
* @Serializer\XmlKeyValuePairs
*/
public $randoms = [];
/**
* @Serializer\Type("array")
* @Serializer\XmlKeyValuePairs
*/
public $randoms = [];
/**
* @Serializer\Type("array")
* @Serializer\XmlKeyValuePairs
*/
public $randoms;
/**
* @Serializer\Type("array")
*/
public $randoms;
/**
* @Serializer\Type("array")
*/
public $randoms = [];
}
JSON 响应
{
"title": "Samsung",
"randoms": []
}
此问题已在 last release 中解决。下面的部分现在有效。
/**
* @Serializer\Type("array<string, string>")
* @Serializer\XmlKeyValuePairs
*/
public $random;
Key randoms
可以包含任何键值对,因此无论您输入什么(只要它在值键对中)都将被接受。例如<tomato>nonsense</tomato>
。但是我的映射没有拾取它们,所以我得到了 randoms
的空数组。我错过了什么?
注意:我在下面列出了我尝试过的所有 public $randoms;
。我在 Symfony2 中使用 "jms/serializer-bundle": "0.13.0",
composer 包。
有效载荷
<?xml version="1.0" encoding="UTF-8"?>
<product id="1">
<title>Samsung</title>
<randoms>
<review>710</review>
<popularity>good</popularity>
</randoms>
</product>
模型映射
namespace Application\BackendBundle\Model\Api\Xml;
use JMS\Serializer\Annotation as Serializer;
/**
* @Serializer\XmlRoot("product")
*/
class Product
{
/**
* @Serializer\Type("string")
*/
public $title;
/**
* @Serializer\Type("array<string, string>")
* @Serializer\XmlKeyValuePairs
*/
public $randoms;
/**
* @Serializer\Type("array<string, string>")
* @Serializer\XmlKeyValuePairs
*/
public $randoms = [];
/**
* @Serializer\Type("array")
* @Serializer\XmlKeyValuePairs
*/
public $randoms = [];
/**
* @Serializer\Type("array")
* @Serializer\XmlKeyValuePairs
*/
public $randoms;
/**
* @Serializer\Type("array")
*/
public $randoms;
/**
* @Serializer\Type("array")
*/
public $randoms = [];
}
JSON 响应
{
"title": "Samsung",
"randoms": []
}
此问题已在 last release 中解决。下面的部分现在有效。
/**
* @Serializer\Type("array<string, string>")
* @Serializer\XmlKeyValuePairs
*/
public $random;