基于我之前的问题here,R可以解析JSONP对象吗?我已成功使用RJSONIO
从Web读取/解析JSON对象。
我遇到了一个JSONP的Feed。当我尝试使用fromJSON()
时,会返回一个空列表。
非常感谢任何帮助。保持在R内是首选。提前谢谢。
答案 0 :(得分:3)
要解析JSONP内容,您可以删除围绕JSON内容的函数调用(如PHP中所述here),然后像解析标准JSON那样解析内容。 / p>
要在R中执行此操作,请尝试以下方式:
j <- readLines('http://live.nhl.com/GameData/20112012/2011020908/Roster.jsonp')
j <- sub('[^\\{]*', '', j) # remove function name and opening parenthesis
j <- sub('\\)$', '', j) # remove closing parenthesis
library(RJSONIO)
res <- fromJSON(j)
# example output:
unlist(lapply(res$data$home$skaters$player, function(x) x$lname))
[1] "Greene" "Zubrus" "Parise" "Ponikarovsky"
[5] "Henrique" "Sykora" "Josefson" "Kovalchuk"
[9] "Bernier" "Carter" "Harrold" "Clarkson"
[13] "Salvador" "Janssen" "Elias" "Volchenkov"
[17] "Fayne" "Taormina"
我不熟悉JSON,也不熟悉JSONP,所以我不确定是否可能遇到多个函数调用包装器的JSONP内容。如果是这样,您需要稍微修改sub
模式。如果您想将我指向您的JSONP Feed,我可以相应地修改此解决方案。 RJSONIO也可能提供比lapply
更简单的方法来提取列表元素。