下面的键randoms
可以包含任何键值对,因此无论您输入什么(只要它在值键对中)都将被接受。例如<tomato>nonsense</tomato>
。但是我的映射没有接收它们所以我得到randoms
的空数组。我错过了什么?
注意:我列出了我尝试过的所有public $randoms;
。我正在使用"jms/serializer-bundle": "0.13.0",
作曲家包和Symfony2。
PAYLOAD
<?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": []
}
答案 0 :(得分:0)
此问题已在last release中得到解决。以下部分现在有效。
/**
* @Serializer\Type("array<string, string>")
* @Serializer\XmlKeyValuePairs
*/
public $random;