我只是学习使用jsonlite库从服务器获取json数据。然而,在收到的json响应(我无法控制其结构)中,似乎有一个节点我只能在json对象的中间描述为“转义”JSON数据的一大块。如何从中构建JSON对象?我能够提取每个这样的值,但是我不能将其原样使用而不将其转换为真正的JSON对象。
示例:
library(jsonlite)
myFakeJSON <- '"{"country": "UK","ranking": "45"}"'
json <- toJSON(myFakeJSON)
但:
> json
[1] "\"{\"country\": \"UK\",\"ranking\": \"45\"}\""
结果不是json对象..我做错了什么?如何逃避(或取消逃脱?)收到的数据?看起来像是显而易见的东西,但不是我:(
答案 0 :(得分:1)
我认为你犯了两个错误。第一:引用太多,第二:JSON-hood测试错误。如果你想使用toJSON,那么你会给它一个R对象进行转换,而不是作为JSON字符串。
> myFakeJSON <- '{"country": "UK", "ranking": "45"}'
> fromJSON(myFakeJSON)
$country
[1] "UK"
$ranking
[1] "45"
如果你只需要在花括号的“外部”删除额外的双引号,那么这个正则表达式替换成功就是这个小例子:
> json <- fromJSON(gsub("\\}\\\"", "}", gsub("\\\"\\{","{", myFakeJSON))); json
$country
[1] "UK"
$ranking
[1] "45"