正则怎么将json格式中的long类型转换字符串?

发布于 2022-09-12 13:37:07 字数 70 浏览 13 评论 0

一个后台转过来的集合,因为id是long类型,json.parse会丢失精确度,如何用正则把所有关于id的值,都改成字符串类型

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情释 2022-09-19 13:37:07
const result = '[{"id":1234567890},{"id":1234567891}]'.replace(/(?<="id"\s*:\s*)(\d+)/g, '"$1"');

// "[{"id":"1234567890"},{"id":"1234567891"}]"
console.log(result);
老街孤人 2022-09-19 13:37:07

最简单的方式让后台序列化成 String。

否则只能 JS 手写 JSON Parser,这有个别人写好的库:zaach/jison: Bison in JavaScript. (github.com)

但如果你用的是原生的 fetch 或是 jQueryaxios 提供的响应反序列化器,还是不行,因它们都是依赖 JSON.parse 的,所以你 AJAX 库也得自己手动改造一下。

此外,这还仅仅只解决了第一步反序列化精度丢失的问题,如果你还要在前端做加减乘除一类的运算,那么还得祭出 BigInt

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文