php - Symfony 序列化程序返回字符串而不是浮点数
问题描述
Symfony 序列化器组件如何配置为规范化对象(实体)的浮点属性?
详细地说:taxRate
一个学说实体的属性被映射到一个 PHP 浮点值。我想从一个带有 JSON 表示的控制器响应,例如:
{taxRate:0.19}
但我得到的是
{taxRate:"0.19"}
实体的属性和注解的定义是:
class ExampleEntity {
/**
* @ORM\Column(type="decimal", precision=3, scale=2, nullable=true)
* @Groups({"api"})
*/
protected $taxRate;
}
控制器如下所示:
$serializer = $this->get('serializer');
return new JsonResponse(
$serializer->normalize(
$exampleEntity,
'json',
[
'groups' => 'api',
]
)
);
我不喜欢在 JavaScript 端将字符串转换为 Float 的解决方案。我的应用程序想断言该属性是 NULL 或 Float 值。
如何才能做到这一点?
解决方案
感谢评论,我认为这个问题不是很清楚/可以删除。
序列化过程很好,它是来自 Doctrine 的映射,我没有做对。
完全没问题,DECIMAL Doctrine/MySQL 类型映射到 PHP 字符串。DECIMAL 旨在保证数值的精度。PHP 的浮点类型不能保证相同的精度。
推荐阅读
- javascript - 如何解决 ajax django 中的 JSONdecode 错误?
- c# - Unity - 使用按钮的 onClick 功能切换场景
- python - 有没有办法让 Eclipse(使用 pydev)在每个类或 def 语句的开头插入一个空的文档字符串?
- r - R中的Write.table循环
- ibm-watson - IBM Watson Visual Recognition:在端点 (...) 的 guid (...) 的 getAllCollections 响应中收到 403 中的无效状态
- maven - 在哪里可以找到 GCP 云构建者的列表?
- excel - (excel VBA):将记录集的剩余行复制到第二张表
- python - 为什么所有标签_都是-1?由 DBSCAN 在 Python 中生成
- c# - 有没有办法在泛型方法中提供任意数量的类型?
- c# - 具有可变列长度输出的 SSIS C# 脚本 CSV 目标