6

想象一下,我有一个简单的对象,其结构类似于以下对象:

Object (SomeClass) {
    $someOtherData (array) [
        ...
    ]

    $data (array) [
        "key": "value",
        "key": "value",
        "key": "value",
        "key": "value"
    ]
}

如果我要使用 JMS 序列化器将此对象序列化为 JSON,我会得到一个具有相同结构的结果,但 $data 位于根元素上,如下所示:

{
    "someOtherData": {
        ...
    },
    "data": {
        "key": "value",
        "key": "value",
        "key": "value",
        "key": "value"
    }
}

我需要将 $data 变量的内容放在序列化结果的根目录上,即:

{
   "someOtherData": {
       ...
   },
   "key": "value",
   "key": "value",
   "key": "value",
   "key": "value"
}

这可能吗?如果是这样,怎么做?

4

2 回答 2

8

原来有一个注释。这是@Inline注释:

use JMS\Serializer\Annotation\Inline;

// ...

/**
 * @var array
 *
 * @Inline
 */
protected $variables;
于 2014-09-10T13:34:21.033 回答
0

我认为最好的方法是使用 SerializationHandler。在这里您可以找到一些文档:http: //jmsyst.com/libs/serializer/master/handlers

于 2014-09-10T12:03:25.000 回答