首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何让jq保留bigint值?

如何让jq保留bigint值?
EN

Stack Overflow用户
提问于 2020-07-22 00:24:53
回答 2查看 112关注 0票数 3

我有一个很大的JSON文件,其中包含了带有完整值的bigints -不像JavaScript默认情况下喜欢的那样进行四舍五入。我们有一个解决方法来处理Node.js中的大整数,但我正在尝试使用jq (命令行工具)来清理我们的数据。然而,当我在我们的JSON文件上运行jq时,它舍入了我们所有的bigints。

有没有办法使用jq,这样它就不会舍入大整数,或者有没有其他命令行工具可以在Mac上运行,我可以用它来代替?

EN

回答 2

Stack Overflow用户

发布于 2020-07-22 04:37:52

到目前为止,jq提供的关于JSON数字的最好的版本是"master“版本,它很好地保留了外部数值。更新是在2019年10月22日左右进行的,jq的“主”版本似乎与最新版本(jq 1.6)一样安全。

使用最新"master“版本的示例:

代码语言:javascript
运行
复制
    jqMaster -n -M '
    [0000,
     10000000000000000000000000000000000000012, 
     1.0000000000000000000000000000000000000012, 
     1000000000000000000000000000000000000001210000000000000000000000000000000000000012,
     0.1e123456]'

输出

代码语言:javascript
运行
复制
[
  0,
  10000000000000000000000000000000000000012,
  1.0000000000000000000000000000000000000012,
  1000000000000000000000000000000000000001210000000000000000000000000000000000000012,
  1E+123455
]
票数 2
EN

Stack Overflow用户

发布于 2021-07-12 23:08:57

另一种选择是使用“gojq”,这是jq的Go实现,它使用整数文字的无限精度表示。

事实上,除了在撰写本文时只在gojq的“主”版本中修复了一个bug之外,gojq支持无限精度的整数运算。错误修复:https://github.com/itchyny/gojq/commit/7a1840289029c9c038d61274ceac9b8d307c0358

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63018852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档