为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony在序列化期间跳过空值

Symfony在序列化期间跳过空值

PHP
慕尼黑8549860 2021-05-03 12:08:54
我正在尝试序列化一个对象并跳过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);


查看完整回答
反对 回复 2021-05-07
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

您可以考虑使用JMSSerializerBundle而不是Symfony序列化器


易于使用。您可以将null序列化为空字符串


$context = new SerializationContext();

$context->setSerializeNull(true);

$objectData = $serializer->serialize($object, 'json', $context);


查看完整回答
反对 回复 2021-05-07
  • 2 回答
  • 0 关注
  • 155 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信