【发布时间】:2020-11-25 16:58:55
【问题描述】:
我有 json
"{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}"
campaign_id = 23845817785350401 为整数。
当我试图解析它时,我遇到了一些问题:
"{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}" %>% jsonlite::fromJSON()
$old_value
[1] "Active"
$new_value
[1] "Inactive"
$campaign_id
[1] 23845817785350400
$type
[1] "run_status"
campaign_id 解析不正确。
如何像字符一样解析它或在 json 中为campaign_id 添加引号?
谢谢!
【问题讨论】:
-
对于“大”整数,R 将它们转换为 Double 值(因为 R 本身没有 64 位整数)。您可以使用任意数量的包,例如
mpfr来处理 64 位整数。 -
@Oliver:为什么不把它当作一个字符串呢?
-
@Oliver,是的,我可以,但是在
fromJSON之后返回的数字已经错误 -
如果您对使用 R 大数解析感到沮丧,请使用
stringr::str_extract(json, '(?<="campaign_id":)\\d+') -
@WiktorStribiżew 谢谢!我想过这个,但希望有更优雅的解决方案