是否可以使用JMS Serializer将数组序列化到对象的根目录?

时间:2014-09-10 11:22:50

标签: php json symfony serialization jms-serializer

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

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

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:7)

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

use JMS\Serializer\Annotation\Inline;

// ...

/**
 * @var array
 *
 * @Inline
 */
protected $variables;

答案 1 :(得分:0)

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