【发布时间】:2021-02-02 21:27:07
【问题描述】:
如果我尝试从我写的后端获取 JSON 响应,我会得到以下完全正确的响应:
{
"status": "ok",
"get": {
"5b7e4b0b-fc98-4107-ab72-32577440e02e": {
"isUser": false,
"permissions": {
"play": true,
"disconnect": true,
"debug": false,
"color": false,
"leaderboard-collect-voice": true,
"view-bot-log": false,
"command-boobs": false,
"embed-builder": false,
"clear": false,
"admin": false,
"skip": true,
"w2g": true,
"pause": true,
"clear-queue": true,
"leaderboard": true,
"rank-self": true,
"rank-other": true,
"leaderboard-collect-text": true,
"queue": true,
"move-to-me": false
},
"id": 0
},
"d902f18f-95ad-432c-9ee9-27e63ff6fce1": {
"isUser": false,
"permissions": {
"play": false,
"disconnect": false,
"debug": false,
"color": false,
"leaderboard-collect-voice": false,
"view-bot-log": false,
"command-boobs": true,
"embed-builder": false,
"clear": false,
"admin": false,
"skip": false,
"w2g": false,
"pause": false,
"clear-queue": false,
"leaderboard": false,
"rank-self": false,
"rank-other": false,
"leaderboard-collect-text": false,
"queue": false,
"move-to-me": false
},
"id": 767965825293746217
}
}
}
但是,如果 Chrome 尝试从服务器的响应中获取正确的数据,但在预览和网站的 JavaScript 中获取的数据错误值。我试图改变这个值,但没有任何效果。似乎每次最后2位都被零替换。
【问题讨论】:
-
您是否将 id 存储为数字?尝试将 id 存储为字符串
-
@sonEtLumiere 我的问题是 json 是由 GSON 生成的,我不知道如何告诉 GSON 将 long 存储为字符串。我已经在看,但我没有找到任何相关信息。 js不应该使用int64吗?所以得到一个长整数应该不是问题。
-
呃,我想我找到了一些东西:stackoverflow.com/questions/48104306/…
-
确定吗?这就是 JavaScript 数字类型的工作原理。它只能模拟高达 2^53 - 1 的整数,您的
id是 well 以上。有关 Number 数据类型限制的更多详细信息,请参阅isSafeInteger() 和朋友。
标签: javascript json google-chrome backend