在分配字符串之前转义 R 中的引号

Escape quotes in R before assigning a string

我正在尝试加载 JSON 文件并在 R 中进行一些分析。

JSON 文件包含如下部分:

 '{"property":"blabla \"some goofy name\" more blabla"}'

这意味着里面有一对双引号 属性 的字符串值。这应该是有效的 JSON(或不是?)。

问题是,如果我尝试用 jsonlite 或任何其他库解析它,我需要将它分配给 R 中的字符串变量。像这样:

 a = '{"property":"blabla \"some goofy name\" more blabla"}'

但是,如果我输入 a 并按回车键,我会返回:

[1] "{\"property\":\"blabla \"some goofy name\" more blabla\"}"

这意味着已经存在的 \" 个实例现在等于实际的 " 个实例,所以我什至无法用正则表达式替换它们。如果我将其提供给任何 JSON 解析库,则会出现无效字符错误等

有什么方法可以在 R 认为它们与普通 " 相同之前 'catch' 那些令人讨厌的 \" 实例,以便我可以消除 \" 并继续JSON 解析?

与相似的区别issue is that the inner quotes are already escaped forming a valid JSON. My ultimate challenge is to parse this JSON: http://next.openspending.org/api/3/cubes/ba94aabb80080745688ad38ccad9bfea:at-austria-at11-burgenland/facts?pagesize=30

OP 更新后的更新答案

我想我可能还没有 100% 理解你想要完成的事情,所以如果这不是你想要的输出,请告诉我。我没有处理您文件中的换行符,因为这似乎不相关。如您所述,您的文件包含包含 "\"Bienenkorb\"" 的字符串。

url <- "http://next.openspending.org/api/3/cubes/ba94aabb80080745688ad38ccad9bfea:at-austria-at11-burgenland/facts?pagesize=30"
parsed <- jsonlite::fromJSON(url)
print(parsed$data$activity_project_id.project_name[3])
#[1] "Neugestaltung und\nModernisierung des\nRestaurants \"Bienenkorb\""
cat(parsed$data$activity_project_id.project_name[3])
#Neugestaltung und
#Modernisierung des
#Restaurants "Bienenkorb"

如果你想把它赋值给一个字符串然后解析它,你可以这样做s <- readLines(url); parsed <- jsonlite::fromJSON(s).