Javascript Nativescript转换长数字-最后3位数字更改为000
我对API进行了一些Http调用,它返回一些数据。 数据如下:Javascript Nativescript转换长数字-最后3位数字更改为000,javascript,nativescript,Javascript,Nativescript,我对API进行了一些Http调用,它返回一些数据。 数据如下: { "id": 7728806673365567000, "title": "Status Unknown" } 现在,问题在于ID,在数据库中,ID类似于: 7728806673365567677 因此,有效id的最后3位数字为677,但API返回的数据包含000,因此: 有效电话:772880667365567677 无效:772880667365567000 我想知道这有什么问题。如果ID是字符串而不是数字,它可能会工作 谢
{
"id": 7728806673365567000,
"title": "Status Unknown"
}
现在,问题在于ID,在数据库中,ID类似于:
7728806673365567677
因此,有效id的最后3位数字为677,但API返回的数据包含000,因此:
有效电话:772880667365567677
无效:772880667365567000
我想知道这有什么问题。如果ID是字符串而不是数字,它可能会工作
谢谢你的建议
编辑:现在我看到后端中的数据实际上是一个字符串:
"7728806673365567000"
但Http调用将其更改为数字?它与NativeScript无关。您可以用JavaScript称之为限制,因为您超出了JavaScript支持的最大安全整数限制。如果您也在浏览器环境中尝试此操作,结果将是相同的 正如您已经提到的使用字符串而不是数字,这应该可以解决这个问题。基于
Number.MAX_SAFE_INTEGER
9007199254740991
未定义
“772880667365567000”
“数字”
假的
编号:isSafeInteger(772880667365567)
真的
所以
“772880667365567677”
及
772880667365567000
例如在
应该解决这个问题并返回
{
"id": "7728806673365567677",
"title": "Status Unknown"
};
您需要安装一个名为“php5 json”的包
问题可能出在后端。您好,在数据库中-在phpmyadmin中,一切看起来都正常,因此非常混乱。为什么您认为在phpmyadmin中它看起来不错,但console.log输出显示了其他内容?我在endHi中添加了一个php解决方案,什么解决方案?嗨,谢谢。但如何将其转换为字符串以获得有效数字?现在响应给了我NUMBER000,所以如果我把它转换成字符串,我会得到NUMBER000,对吗?或者你建议先在后端处理?是的,你必须在后端处理。如果您引用任何REST API,当它们超过此限制时,它们会将ID作为字符串处理。嗨,我已经检查了后端,thw ID是字符串:“772880667365567677”,但Http调用将其更改为772880667365567677。。。有什么想法吗?谢谢。这一定和你的后端有关,Http调用不会改变任何事情。您可以与任何REST客户端(如POSTMAN)交叉检查响应,确保它返回字符串。
d.toString()
typeof d
Number.isSafeInteger(7728806673365567677 )
var data = {
"id": 7728806673365567677,
"title": "Status Unknown"
};
data.id;
var data = {
"id": "7728806673365567677",
"title": "Status Unknown"
};
data.id;
$data= array(
'id' => 7728806673365567677,
'title' => 'Status Unknown',
);
echo json_encode($data,JSON_NUMERIC_CHECK);
{
"id": "7728806673365567677",
"title": "Status Unknown"
};