2

下面的键randoms可以包含任何键值对,因此您输入的任何内容(只要它在值键对中)都将被接受。例如<tomato>nonsense</tomato>。但是我的映射没有选择它们,所以我得到一个空数组randoms。我错过了什么?

注意:我在public $randoms;下面列出了我尝试过的所有内容。我正在使用"jms/serializer-bundle": "0.13.0",带有 Symfony2 的 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": []
}
4

1 回答 1

0

此问题已在上一个版本中得到解决。下面的部分现在工作。

/**
 * @Serializer\Type("array<string, string>")
 * @Serializer\XmlKeyValuePairs
 */
public $random;
于 2018-03-21T10:56:55.143 回答