用 R 中的大整数解析 json

Parse json with big integer in R

我有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 内添加引号 for campaign_id?
谢谢!

由于解析长数字会导致数据丢失,您可能可以在此处依赖正则表达式提取。

您可以使用

x <- "{\"old_value\":\"Active\",\"new_value\":\"Inactive\",\"campaign_id\":23845817785350401,\"type\":\"run_status\"}"
library(stringr)
stringr::str_extract(x, '(?<="campaign_id":)\d+')
# => [1] "23845817785350401"

也就是说,它提取紧跟在 "campaign_id": 子串之后的一位或多位数字(使用 \d+)。

参见R demo online and a regex demo