我正在尝试序列化一个对象并跳过null值,这是我尝试序列化的对象:{ key1: null key2: null key3: { keyA: null keyB: 'value' } key4: 'value'}如果我使用以下方法:$object = self::getInstance()->serialize($object, "json", ['skip_null_values' => true]);该对象已成功序列化,但只删除了第一级的null键,而不从key3对象中删除了该键。{ key3: { keyA: null keyB: 'value' } key4: 'value'}有什么方法可以使用Symfony序列化程序组件来实现此目的?
2 回答
互换的青春
TA贡献1797条经验 获得超6个赞
您可以使用上下文传递 setSerializeNull(true)
use FOS\RestBundle\Context\Context;
在您的职能:
$data = ...
$view = $this->view($data, 200);
$context = new Context();
$context->setSerializeNull(true);
$view->setContext($context);
return $this->handleView($view);
慕侠2389804
TA贡献1719条经验 获得超6个赞
您可以考虑使用JMSSerializerBundle而不是Symfony序列化器
易于使用。您可以将null序列化为空字符串
$context = new SerializationContext();
$context->setSerializeNull(true);
$objectData = $serializer->serialize($object, 'json', $context);
- 2 回答
- 0 关注
- 155 浏览
添加回答
举报
0/150
提交
取消