我遇到了问题,我需要在API中解析长整数。由于我没有算术地做任何事情,因此最容易将它们作为字符串来处理。我试过了Bignumber.js,但是如果数字超过15个字符,它会开始抱怨。不幸的是我也必须处理它们。
由于我没有对它进行算术处理,实际上甚至将这些数字存储为字符串我想要一个JSON解析器,它解析字符数过大而且能够将它们视为JSON.stringify中的数字。
我尝试使用替换函数进行stringify,但是我无法摆脱数字周围的引号。
我也找不到一个只关心这个问题的库。
我希望我的大号码在javascript中是一个字符串,但在JSON中是一个数字(在JSON.stringify之后)
e.g。 Javascript中的对象
var myObj = {
id: "89074987798719283473" // <-- String within javascript
}
var objString = JSON.stringify(myObj)
现在我的objString应该是
{id:89074987798719283473}
而不是
{id:“89074987798719283473”}
答案 0 :(得分:1)
如果你绝对必须这样做并且真的找不到更好的处理方法,那么请记住JSON只是一个字符串,所有用于字符串操作的工具都可以解决这个问题。所以你可以这样做:
var myObj = {
id: "89074987798719283473" // <-- String within javascript
}
var json = JSON.stringify(myObj); // this is {"id":"89074987798719283473"}
var numberJson = json.replace(/"id":"(\d+)"/,'"id":$1'); // this is now {"id":89074987798719283473}
console.log(numberJson);
当然这很容易出错并且容易出错,因为你必须非常小心你所匹配的东西(你可能有一些名为id
的属性嵌套在你不想被操纵的json中)。如果你想让它更健壮一些,你可以在字符串化之前在id
的末尾添加一些内容,以便更容易在字符串中查找和替换它。