Question

This might be a duplicate- but I couldn't find something to solve this problem.

I'm using httpGET() to call the google directions API.

Packages:

require(RCurl)
require(rjson)
require(gooJSON)

the code is:

url = "http://maps.googleapis.com/maps/api/directions/json?origin=12.9673293,77.7173975&destination=12.9373613,77.700985&waypoints=optimize:true|12.9723379,77.7117611|12.9922162,77.715895|12.9629354,77.7122996&sensor=false"
routeJSON = httpGET(url= url)
routeList = fromJSON(routeJSON)

I get:

Error in fromJSON(routeJSON) : 
  unexpected escaped character '\]' at pos 18

I wrote the JSON to a file and copied it to jsoneditoronline.com. I got:

Error: Parse error on line 51:
...         "points" : "qscnA_djyMj@kAT[\]\
-----------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

validated by jsonlint

But it works when I put the URL into the browser and copy the output to jsoneditoronline.

Any idea why it is happening and/or how to circumvent it?

EDIT: I tried gooJSON, but it seems it does not support the maps API V3.

> goomap(url)
$Status
$Status$code
[1] 610

$Status$request
[1] "geocode"

$Status$error_message
[1] "The Geocoding API v2 has been turned down on September 9th, 2013. The Geocoding API v3 should be used now. Learn more at https://developers.google.com/maps/documentation/geocoding/"
Was it helpful?

Solution

The following works fine for me:

require(rjson)
url = "http://maps.googleapis.com/maps/api/directions/json?origin=12.9673293,77.7173975&destination=12.9373613,77.700985&waypoints=optimize:true|12.9723379,77.7117611|12.9922162,77.715895|12.9629354,77.7122996&sensor=false"
fromJSON(file=url)

However, if there is invalid json data, one can call

fromJSON(url, unexpected.escape="keep")

to to treat the escaped character as normal character (e.g. \] becomes ])

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top