我有一个表示表格,行和单元格的数据结构。我需要将它序列化并反序列化为JSON和XML。如何配置JMS Serializer以序列化此类对象,
class Test {
public $data = [
'row_one' => ['cell-11', 'cell-12'],
'row_two' => ['cell-21', 'cell-22'],
];
}
进入这个XML:
<result>
<data>
<row index="row_one">
<cell>cell-11</cell>
<cell>cell-12</cell>
</row>
<row index="row_two">
<cell>cell-21</cell>
<cell>cell-22</cell>
</row>
</data>
</result>
我已经尝试使用代表具有@Inline
注释的行的对象,它不适用于JSON中的反序列化,行是空的。
答案 0 :(得分:0)
最后,我设法(取消)使用每个Row的单独对象序列化我的对象。
我的映射如下:
class Table
{
/**
* @\JMS\Serializer\Annotation\Inline
*/
private $rows = [];
public function __construct(array $rows)
{
$this->rows = $rows;
}
}
class Row
{
/**
* @\JMS\Serializer\Annotation\Inline
*/
private $values = [];
public function __construct(array $values)
{
$this->values = $values;
}
}
然后我使用JMS Serializer序列化我的对象:
echo $serializer->serialize(new Table([
new Row(['cell-11', 'cell-12']),
new Row(['cell-21', 'cell-22'])
]), 'json');
不幸的是,通过这种方法,由于我试图在此处修复的错误,反序列化无效 - https://github.com/schmittjoh/serializer/pull/513