$serializer =
new Serializer([new ArrayDenormalizer(),
new DateTimeNormalizer(),
$normalizer]);
$obj =
$serializer->
denormalize([ 'inner' =>
['foo' => 'foo', 'bar' => 'bar'
],
'date' => '1988/01/21',
'inners' =>
[['foo' => 1
],
['foo' => 2
]],
], ObjectOuter::
class);
$this->
assertSame('foo',
$obj->
getInner()->foo
);
$this->
assertSame('bar',
$obj->
getInner()->bar
);
$this->
assertSame('1988-01-21',
$obj->
getDate()->
format('Y-m-d'
));
$this->
assertSame(1,
$obj->
getInners()[0
]->foo
);
$this->
assertSame(2,
$obj->
getInners()[1
]->foo
);
} public function testAcceptJsonNumber() { $extractor =
new PropertyInfoExtractor([],
[new PhpDocExtractor(),
new ReflectionExtractor()]);
$normalizer =
new ObjectNormalizer(null, null, null,
$extractor);
$serializer =
new Serializer([new ArrayDenormalizer(),
new DateTimeNormalizer(),
$normalizer]);
$this->
assertSame(10.0,
$serializer->
denormalize(['number' => 10
], JsonNumber::
class, 'json'
)->number
);
$this->
assertSame(10.0,
$serializer->
denormalize(['number' => 10
], JsonNumber::
class, 'jsonld'
)->number
);
}