R:取消转义JSON字符串并构建JSON对象

时间:2016-02-02 17:24:40

标签: json r jsonlite

我只是学习使用jsonlite库从服务器获取json数据。然而,在收到的json响应(我无法控制其结构)中,似乎有一个节点我只能在json对象的中间描述为“转义”JSON数据的一大块。如何从中构建JSON对象?我能够提取每个这样的值,但是我不能将其原样使用而不将其转换为真正的JSON对象。

示例:

library(jsonlite)
myFakeJSON <-  '"{"country": "UK","ranking": "45"}"'
json <- toJSON(myFakeJSON)

但:

> json
[1] "\"{\"country\": \"UK\",\"ranking\": \"45\"}\""

结果不是json对象..我做错了什么?如何逃避(或取消逃脱?)收到的数据?看起来像是显而易见的东西,但不是我:(

1 个答案:

答案 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"