首页 > 文章列表 > JSON格式化前后数据类型不一致是什么原因导致的?

JSON格式化前后数据类型不一致是什么原因导致的?

477 2024-12-05

JSON格式化前后数据类型不一致是什么原因导致的?

json格式化前后不一致的原因

我们在格式化json时发现格式化前后数据存在差异,例如:

{
  "total": 12,
  "rows": [
    {
      "id": 9,
      "liquidmonitorid": 273003152665484863
    },
    {
      "id": 8,
      "liquidmonitorid": 273003152665484865
    }
  ],
  "code": 200,
  "msg": "查询成功"
}

格式化后:

{
  "total": 12,
  "rows": [
    {
      "id": "9",
      "liquidMonitorId": "273003152665484863"
    },
    {
      "id": "8",
      "liquidMonitorId": "273003152665484865"
    }
  ],
  "code": "200",
  "msg": "查询成功"
}

我们发现id和liquidmonitorid字段的值突然变成了字符串。

原因:

javascript中数字类型有一个最大安全值,为number.max_safe_integer,即2的53次方。超过这个值会出现精度问题。

后台返回的数据可能是正确的,但在前台处理时,超过了最大安全值,导致值被转换为字符串。

来源:1732939029