我正在将我们的新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。
有什么想法吗?