【发布时间】:2017-02-23 07:54:01
【问题描述】:
我正在开发一个版本为 2.8 的 Symfony 2 项目,我正在使用内置组件 Serializer -> http://symfony.com/doc/current/components/serializer.html
我有一个由 Web 服务提供的 JSON 结构。 反序列化后,我想对对象中的内容进行非规范化。这是我的结构(汽车应用程序上下文中的模型/制造)。
[{
"0": {
"id": 0,
"code": 1,
"model": "modelA",
"make": {
"id": 0,
"code": 1,
"name": "makeA"
}
}
} , {
"1": {
"id": 1,
"code": 2,
"model": "modelB",
"make": {
"id": 0,
"code": 1,
"name": "makeA"
}
}
}]
我的想法是填充一个 VehicleModel 对象,其中包含对 VehicleMake 对象的引用。
class VehicleModel {
public $id;
public $code;
public $model;
public $make; // VehicleMake
}
这是我的工作:
// Retrieve data in JSON
$data = ...
$serializer = new Serializer([new ObjectNormalizer(), new ArrayDenormalizer()], [new JsonEncoder()]);
$models = $serializer->deserialize($data, '\Namespace\VehicleModel[]', 'json');
结果,我的对象VehicleModel 被正确填充,但$make 在逻辑上是一个键/值数组。这里我想要一个VehicleMake。
有没有办法做到这一点?
【问题讨论】:
标签: php json symfony denormalization