JMS Serializer Bundle没有获得xml值

时间:2017-10-24 14:04:51

标签: php symfony jmsserializerbundle symfony-3.3

我正在将我们的新API迁移到Symfony 3.3(并为Symfony4做好准备),但我遇到了一些JMSSerializerBundle问题。

我有一个包含以下内容的XML:

<?xml version="1.0" encoding="UTF-8"?>
<response version="4.1" sessionId="1" type="MY_TYPE">
  <status>XXX - My status text</status>
  <period start="YYYYmmdd" end="YYYYmmdd" />
  <amount_details currencyCode="EUR">
    <nett_amount>10</nett_amount>
    <comission_amount>10</comission_amount>
    <total_amount>10</total_amount>
  </amount_details>
</response>

当我尝试用JMSSerializerBundle构造一个对象时,我得到的所有值都可以,但是一个:&#34; amount_details&#34;。

这是我的yaml参考:

App\Domain\DTO\PrebookResponseProvider:
    properties:
        status:
            type: string

        period:
            type: App\Domain\Provider\DataTransferObject\Period               

        amountDetails:
            type: App\Domain\Provider\DataTransferObject\AmountDetails
            serialized_name: amount_details

DTO就像看起来一样简单:

    class PrebookResponseProvider
    {
        /** @var  string $status */
        protected $status;          

        /** @var  Period $period */
        protected $period;            

        /**
         * @var  AmountDetails $amountDetails
         */
        protected $amountDetails;

       //GETTERS AND SETTERS GOT HERE
   }

和jms_serializer.yaml:

jms_serializer:
    metadata:
        auto_detection: false
        directories:
            Entities:
                path: '%kernel.root_dir%/Infrastructure/Resources/config/serializer'
    expression_evaluator:
        id: jms_serializer.expression_evaluator

我尝试了所有我知道的内容,但在使用DTO时仍然将amount_details视为null。

有什么想法吗?

0 个答案:

没有答案