2013-11-27 2 views
1

Я использую скрипт Google Apps, пытаясь импортировать информацию о скорости обмена биткойнами в электронную таблицу Google. Я использую этот код:Скрипт Google Apps испортил значения JSON

var url = "https://btc-e.com/api/2/btc_usd/ticker"; 
var response = UrlFetchApp.fetch(url); 
var json = response.getContentText(); 
var lcharts_data = JSON.parse(json) 

function bitcoin(){ 
    var b = lcharts_data["ticker"]["avg"]; 
    return b; 
} 

JSON-файл выглядит следующим образом:

{"ticker": 
    {"high":947.99902, 
    "low":817.64001, 
    "avg":882.819515, 
    "vol":24625847.06001, 
    "vol_cur":28189.09956, 
    "last":930, 
    "buy":930, 
    "sell":929.998, 
    "updated":1385575341, 
    "server_time":1385575342} 
    } 
} 

Еще б возвращается как 22.49. Что я делаю не так?

+0

Ваш код работает, как ожидалось. Используйте 'JSON.parse()', а не 'Utilities.jsonParse()', поскольку последний устарел. –

+0

@JacobJanTuinstra Я не вижу в [Документах сценариев приложений Google] (https://developers.google.com/apps-script/reference/utilities/utilities#jsonParse (String)), что последнее устарело? – dev

+0

@vletech См. 18 ноября: https://developers.google.com/apps-script/releases/#november_2013 –

ответ

0

Я использую подобный метод для приема данных, но я разбираю его несколько иначе. Например:

var url = "https://btc-e.com/api/2/btc_usd/ticker"; 
var response = UrlFetchApp.fetch(url); 
var json = response.toString(); 
var lcharts_data = JSON.parse(json); 

Уведомление методом toString() и родной Utilities.jsonParse() метода. Я попробовал JSON.parse(), но это не сработало для меня.

Также используются ключи API для доступа к данным? Попробовали выше, но это тайм-аут.

+0

Это работало для вас? – user3042831

+0

@ user3042831 Методы, о которых я упомянул выше, работают для другой службы API, которую я использую, но я не могу протестировать вашу битовую монету, так как я не получаю ответа. – dev

+0

Как @JacobJanTuinstra указал, что 'Utilities.jsonParse()' устарел (но все еще работает на данный момент), но результат перехода на 'JSON.parse()' не отличается. – dev

0

Как в том, когда я проверил свой адрес, ответ JSON вернулся был:

{ 
"ticker":{ 
    "high":421.70001, 
    "low":418, 
    "avg":419.850005, 
    "vol":2361935.91952, 
    "vol_cur":5620.41595, 
    "last":420.168, 
    "buy":420.168, 
    "sell":419.853, 
    "updated":1460626271, 
    "server_time":1460626273 
    } 
} 

Вот код, который возвращает значение «ср»:

var url = "https://btc-e.com/api/2/btc_usd/ticker"; 
var response = UrlFetchApp.fetch(url); 
var json = response.getContentText(); 
var lcharts_data = JSON.parse(json); 

function bitcoin(){ 
    var b = lcharts_data.ticker.avg; 
    return b; 
} 
Смежные вопросы