如何让 jq 保留 bigint 值?

Bra*_*don 5 json integer bigint arbitrary-precision jq

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

有没有办法使用jq,这样它就不会舍入bigints,或者是否有另一个可以在Mac上运行的命令行工具供我使用?

pea*_*eak 5

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

使用最新“主”版本的示例:

    jqMaster -n -M '
    [0000,
     10000000000000000000000000000000000000012, 
     1.0000000000000000000000000000000000000012, 
     1000000000000000000000000000000000000001210000000000000000000000000000000000000012,
     0.1e123456]'
Run Code Online (Sandbox Code Playgroud)

输出

[
  0,
  10000000000000000000000000000000000000012,
  1.0000000000000000000000000000000000000012,
  1000000000000000000000000000000000000001210000000000000000000000000000000000000012,
  1E+123455
]
Run Code Online (Sandbox Code Playgroud)