2

我在将数据结构转换为 JSON 而不用科学计数法表示数字时遇到问题。

library(rjson)

options(scipen=1000)

toJSON(c(1200000000, 400000))

# [1] "[1.2e+08,400000]"

我怎样才能让它输出"[1200000000,400000]"

4

1 回答 1

1

2018 年更新:jsonlite现在像所有人一样使用:

> toJSON(c(1200000000, 400000))
[1200000000,400000] 

2012年的原始答案:

我还建议在传递给之前将数字转换为字符串,toJSON就像@gauden 上面写的那样。但是,如果您不这样做,请尝试包含一个选项RJSONIO的包(无论如何它会更快) :digits

>  toJSON(c(1200000000, 400000), digits = 10)
[1] "[  1200000000,      400000 ]"

但这会导致一些额外的空白,如您所见。


更新: @gauden 似乎删除了他的答案,所以添加了一些细节

您可能会format在将“数字”转换为 JSON 之前调用例如:

> toJSON(format(c(1200000000, 400000), scientific = FALSE, trim = TRUE))
[1] "[\"1200000000\",\"400000\"]"
于 2012-05-30T20:42:24.303 回答