Проблемы с использованием eval() для анализа данных JSON

Для виджета, который получает цены от API-интерфейсов обмена с использованием API-адресов обмена и ключей JSON:

var Url = 'https://insert.api.url/';
var Key = 'insert.json.key';

request(Url, function(req) {
    var data = JSON.parse(req.responseText);
    var rate = eval("data." + Key); 
    callback(rate);
    });
    return true;
}

function request(Url, callback) {
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = (function(xhr) {
        return function() {
            callback(xhr);
        }
    })(xhr);
    xhr.open('GET', Url, true);
    xhr.send();
}

Это работает как должно на некоторых API, например когда:

var Url = 'https://api.kraken.com/0/public/Ticker?pair=XBTUSD';
var Key = 'result.XXBTZUSD.c[0]';

но это не работает в некоторых случаях, например, когда:

var Url = 'https://api.coinmarketcap.com/v1/ticker/bitcoin/';
var Key = '0[price_usd]';

Я получаю ошибку eval() с "ожидаемым токеном".

как я могу решить это?

0 ответов

Другие вопросы по тегам