Разбор JSONP с R - PullRequest
       4

Разбор JSONP с R

1 голос
/ 26 февраля 2012

Опираясь на мой предыдущий вопрос здесь , R может анализировать объекты JSONP?Я успешно использую RJSONIO для чтения / анализа объектов JSON из Интернета.

Я обнаружил фид, который является JSONP.Когда я попытался использовать fromJSON(), возвращается пустой список.

Любая помощь будет очень признательна.Пребывание в пределах R является предпочтительным.Заранее спасибо.

1 Ответ

3 голосов
/ 27 февраля 2012

Чтобы проанализировать содержимое 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.

...