Javascript Nativescript转换长数字-最后3位数字更改为000

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是字符串而不是数字,它可能会工作 谢

我对API进行了一些Http调用,它返回一些数据。 数据如下:

{
"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”的包


是的,你应该将其作为字符串进行威胁。它大于JS 2^53-1或9007199254740991中的最大可能数

正因为如此,它被截断了,取走的数字被替换为零。我不知道这种特殊的行为是从哪里来的,但这种情况似乎正在发生

见:

您可以使用NPM模块来解决此问题,也可以使用一些解析器来解决此问题,请参见


问题可能出在后端。您好,在数据库中-在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"
};