Чтобы проанализировать содержимое JSONP, вы можете убрать вызов функции, который обернут вокруг содержимого JSON (как описано здесь в контексте PHP), а затем проанализировать содержимое, как для стандартного JSON..
Чтобы сделать это в 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, я могу соответствующим образом изменить это решение.RJSONIO также может предложить более простые способы извлечения элементов списка, чем lapply
.