2013-11-22 3 views
1

Это может быть дубликат, но я не мог найти что-то, чтобы решить эту проблему.неправильный JSON из API Google API при вызове из R

Я использую httpGET() для вызова API указателей google.

Пакеты:

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

код является:

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) 

я получаю:

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

Я написал JSON в файл и скопировать его в jsoneditoronline.com. Я получил:

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

validated by jsonlint 

Но он работает, когда я помещаю URL-адрес в браузер и копирую вывод в jsoneditoronline.

Любая идея, почему это происходит и/или как ее обойти?

EDIT: Я попробовал gooJSON, но, похоже, он не поддерживает карты 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/" 
+0

Необходимо добавить, какие пакеты вы используете в коде в своем сообщении – Dason

+0

Sure. Делать это прямо сейчас – jackStinger

ответ

1

следующие прекрасные произведения для меня:

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) 

Однако, если есть недействительные данные JSON, можно назвать

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

для того чтобы обработать сбежавшего символ как обычный символ (eg \] становится 0)

Смежные вопросы