JSON.parse() 上的数值变化

Posted

技术标签:

【中文标题】JSON.parse() 上的数值变化【英文标题】:Number value changes on JSON.parse( ) 【发布时间】:2016-10-30 11:16:57 【问题描述】:

我正在使用 Node/Express 向 the unofficial Vine API 发出 API 请求。

GET https://api.vineapp.com/users/search/ 路由返回的数据在解析时发生变化。

我的代码如下:

request( url: 'https://api.vineapp.com/users/search/' + username , function (error, response, body) 
  if (error) throw new Error(error);

  console.log(typeof body,'UNPARSED BODY:', body);

  body = JSON.parse(body);

  console.log(typeof body,'PARSED BODY:', JSON.stringify(body, null, 2));

  cb(null, body)
);

这是返回值: 解析时 data.records.userId 发生变化。

为什么会这样?我在这里错过了什么吗?他们为什么要这样做?

【问题讨论】:

解析响应前的userId是什么?您是否还在使用任何自定义验证或自定义类型(如 mongodb 的 ObjectId 字段类型)? 【参考方案1】:

JSON 解析器的数字太大

关于 javascript 中可能的最高值的信息:What is JavaScript's highest integer value that a Number can go to without losing precision?

这里提供了一个解决方案:node.js is there any proper way to parse JSON with large numbers? (long, bigint, int64)

【讨论】:

以上是关于JSON.parse() 上的数值变化的主要内容,如果未能解决你的问题,请参考以下文章

求教C++下怎样监视每个变量的数值变化,要求详细

JSON.stringify(),JSON.parse()

abaqus怎么改变云图数值上的颜色?使颜色可以改变

请教jsonJSON.parse中双引号如何解决

Excel一个单元格数值随另一单元格数值变化而变化?

MPU6050数值没变化?