小编Mur*_*nov的帖子

使用自定义非规范化器对嵌套对象进行Symfony 2非规范化

在这里,我正在为REST API构建Symfony SDK.大多数数据都是具有嵌套的其他JSON对象的JSON对象.像这儿

{
    "id": "eng_pl",
    "name": "Premier League",
    "_links": {
        "self": {
            "href": "/tournaments/eng_pl"
        },
        "seasons": {
            "href": "/tournaments/eng_pl/seasons/"
        }
    },
    "coverage": {
        "id": "eng",
        "name": "England",
        "_links": {
            "self": {
                "href": "/territories/eng"
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

反序列化必须生成一个与下面列出的代码生成的对象相等的对象:

$tournament = new Tournament();
$tournament->setId('eng_pl');
$tournament->setName('Premier League');

$coverage = new Territory();
$coverage->setId('eng');
$coverage->setName('England');

$tournament->setCoverage($coverage);
Run Code Online (Sandbox Code Playgroud)

我正在使用我自己的自定义Denormalizers,在Tournament对象的denormalizer代码片段下面:

class TournamentDenormalizer implements DenormalizerInterface
{

    /**
     * @inheritdoc
     */
    public function supportsDenormalization($object, $type, $format = null)
    {

        if ($type != Tournament::class) {
            return false;
        } …
Run Code Online (Sandbox Code Playgroud)

php json serializer symfony

12
推荐指数
1
解决办法
1938
查看次数

标签 统计

json ×1

php ×1

serializer ×1

symfony ×1