在R中,如何对保存在字符串中的JSON对象取消转义

9rygscc1  于 2023-02-26  发布在  其他
关注(0)|答案(1)|浏览(193)

我把下面的JSON作为字符串保存在R中,但是由于字符串读入R的方式,字符串被 * escape * 了两次。

> myJsonString = "{\\r\\n \\\"type\\\": \\\"service_account\\\",\\r\\n \\\"project_id\\\": \\\"3456\\\" \\r\\n}"
> class(myJsonString)
[1] "character"

我只想把它变成这样

> myBetterJsonString = "{\r\n \"type\": \"service_account\",\r\n \"project_id\": \"3456\" \r\n}"
> class(myBetterJsonString)
[1] "character"

这与我在这里写的一个单独的帖子有关-In R, read.config is escaping a google-service-key but I dont want it to-但是我意识到我的问题可以简化成这样。任何帮助都将不胜感激!

注意:我的实际字符串要长得多。我已经检查了字符串的外观和应该的外观,唯一的区别似乎是:

  • 在\r和\n之前多加一个
  • 在\之前应存在两个额外的\,以转义引号“”

像往常一样,提前感谢任何帮助!

kcrjzv8t

kcrjzv8t1#

我相信{stringi}包中有您想要实现的功能:

myJsonString = "{\\r\\n \\\"type\\\": \\\"service_account\\\",\\r\\n \\\"project_id\\\": \\\"3456\\\" \\r\\n}"
stringi::stri_unescape_unicode(myJsonString)
#> [1] "{\r\n \"type\": \"service_account\",\r\n \"project_id\": \"3456\" \r\n}"

创建于2023年2月23日,使用reprex v2.0.2

相关问题