5
votes

I've been trying to import a JSON file into R for a while using both the rjson and RJSONIO package, but I can't get it to work. One of the variations of code I used:

json_file <- "http://toolserver.org/~emw/index.php?c=rawdata&m=get_traffic_data&p1=USA&project1=en&from=12/10/2007&to=4/1/2011"
json_data <- fromJSON(paste(readLines(json_file), collapse=""))

This results in an error message:

Error in fromJSON(paste(readLines(json_file), collapse = "")) : 
unexpected character '<'

I think the problem is in the first line of code, because json_file contains the source of the website, not the actual content. I've tried getURL() and getURLContent(), but without any success. Any help would be much appreciated!

Edit: as pointed out by Martin Morgan, the problem seems to be with the URL, not the code!

1
When I visit the url in my browser and view the page source, it is pure HTML, with no JSON. SoMartin Morgan
Thanks for checking! You're right, but what is displayed on the page is JSON. Do you know of a way to grab that? I've tried some functions in the RCurl package, but without any luck so far.Steph
Previously, typing the URL into the browser would generate a blank page and fromJSON(json_file) would error as you indicate. Just now, the browser displays JSON, and library(RJSONIO); fromJSON(json_file) works as expected. It seems like the service is not behaving consistently, either because of an issue on 'their' end or because it is meant to be invoked in a more subtle way than just pointing at a URLMartin Morgan
Oh wow, it does work with this URL! I'll contact the owner of the tool. Thanks so much for following up!Steph

1 Answers

4
votes
library(rjson)
fromJSON(readLines('http://toolserver.org/~emw/index.php?c=rawdata&m=get_traffic_data&p1=USA&project1=en&from=12/10/2007&to=4/1/2011')[1])

works for me, with a warning