API Google Finance для получения обменных курсов валют [дублировать]

В главных ответах на этой странице используются слишком простые примеры, такие как объект с одним свойством (например, {name: value}). Я думаю, что простой, но реальный пример жизни может помочь кому-то.

Итак, это JSON, возвращенный API-интерфейсом Google Translate:

{
  "data": 
     {
        "translations": 
          [
            {
              "translatedText": "Arbeit"
             }
          ]
     }
}

Я хочу получить значение атрибута «translText», например. «Arbeit» с использованием Google Gson.

Два возможных подхода:

  1. Получить только один необходимый атрибут
    String json  = callToTranslateApi("work", "de");
    JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();
    return jsonObject.get("data").getAsJsonObject()
            .get("translations").getAsJsonArray()
            .get(0).getAsJsonObject()
            .get("translatedText").getAsString();
    
  2. Создать объект Java из JSON
    class ApiResponse {
        Data data;      
        class Data {
            Translation[] translations;         
            class Translation {
                String translatedText;
            }
         }
     }
    
    ...
     Gson g = new Gson();
     String json =callToTranslateApi("work", "de");
     ApiResponse response = g.fromJson(json, ApiResponse.class);
     return response.data.translations[0].translatedText;
    
137
задан George Stocker 27 February 2014 в 22:12
поделиться

8 ответов

Спасибо за все ваши ответы.

Free currencyconverterapi:

  • Цены обновляются каждые 30 минут
  • Никакой учетной записи не требуется

Образец конверсии URL: http://free.currencyconverterapi.com/api/v5/convert?q=EUR_USD&compact=y


Для потомков они вместе с другими возможными ответами:

  1. Yahoo finance API Discontinued 2017-11-06

    Снято с 2017-11-06 с сообщением Оно имеет обратим наше внимание на то, что эта услуга используется в нарушение Условий использования Yahoo. Таким образом, услуга прекращается. Для всех будущих рынков и исследований данных о ценных бумагах, пожалуйста, обратитесь к finance.yahoo.com. Запрос: http://finance.yahoo.com/d/quotes.csv?e=.csv&f=sl1d1t1&s=USDINR=X Этот CSV использовался плагином jQuery под названием Карри . Карри с тех пор (2017-08-29) перешел на использование fixer.io вместо этого из-за проблем стабильности. Может быть полезно, если вам нужно больше, чем просто CSV.
  2. ( благодаря Keyo ) Язык запросов Yahoo позволяет вам получать целую кучу валют сразу в XML или JSON. Данные обновляются вторым (тогда как Европейский центральный банк имеет данные дня) и останавливается в выходные дни. Не требует никакой регистрации. http://query.yahooapis.com/v1/public/yql?q=select * от yahoo.finance.xchange, где пара в («USDEUR», «USDJPY», «USDBGN», «USDCZK», «USDDKK», «USDGBP», «USDHUF», «USDLTL», «USDLVL», «USDPLN», «USDRON», «USDSEK», «USDCHF», «USDNOK», «USDHRK», «USDRUB», «USDTRY», «USDAUD», «USDBRL», «USDCAD», «USDCNY», «USDHKD», «USDIDR», «USDILS», «USDINR», «USDKRW», «USDMXN», «USDMYR», «USDNZD», USDPHP "," USDSGD "," USDTHB "," USDZAR "," USDISK ") & amp; env = store: //datatables.org/alltableswithkeys Вот построитель запросов YQL, где вы можете протестировать запрос и скопируйте URL-адрес: (НЕ ДОЛГО ДОСТУПНО) http://developer.yahoo.com/yql/console/?q=show%20tables&env=store://datatables.org/alltableswithkeys#h=select%20 *% 20%% 20yahoo.finance.xchange% 20 где% 20pair% 20in% 20% 28% 22USDMXN% 22% 2C% 20% 22USDCHF% 22% 29

  1. API обменных курсов с открытым исходным кодом

    Бесплатно для личного использования (1000 просмотров в месяц) Изменение «базы» (от «USD») не разрешено в Free a ccount Требуется регистрация. Запрос: http://openexchangerates.org/latest.json Ответ:
    {
      "disclaimer": "This data is collected from various providers ...",
      "license": "all code open-source under GPL v3 ...",
      "timestamp": 1323115901,
      "base": "USD",
      "rates": {
          "AED": 3.66999725,
          "ALL": 102.09382091,
          "ANG": 1.78992886,
          // 115 more currency rates here ...
      }
    }
    
  2. API-интерфейс для игрового слоя

    Free Plan за 1000 месячных хитов Изменение «источника» (от «доллара США») запрещено на бесплатной учетной записи. Требуется регистрация. Документация: currencylayer.com/documentation JSON Response:
    {
      [...]
      "timestamp": 1436284516,
      "source": "USD",
      "quotes": {
          "USDAUD": 1.345352401,
          "USDCAD": 1.27373397,
          "USDCHF": 0.947845302,
          "USDEUR": 0.91313905,
          "USDGBP": 0.647603397,
          // 168 world currencies
          }
      }
    
  3. Fixer.io API (данные Европейского центрального банка)

    Бесплатный план для 1000 ежемесячных обращений Изменение «источника» (от «доллара США») запрещено в бесплатном аккаунте. Требуется регистрация. Эта конечная точка API устарела и перестанет работать 1 июня 2018 года. Для получения дополнительной информации посетите: https://github.com/fixerAPI/fixer#readme) Веб-сайт: http://fixer.io/ Пример запроса: http://api.fixer.io/latest?base=USD Собирает только одно значение за каждый день
  4. Канал Европейского центрального банка

    Документы: http://www.ecb.int/stats/exchange/eurofxref/html/index.en.html#dev Запрос: http://www.ecb.int /stats/eurofxref/eurofxref-daily.xml Ответ XML:
    <Cube>
      <Cube time="2015-07-07">
      <Cube currency="USD" rate="1.0931"/>
      <Cube currency="JPY" rate="133.88"/>
      <Cube currency="BGN" rate="1.9558"/>
      <Cube currency="CZK" rate="27.100"/>
    </Cube>
    
  5. Запрос на обменный курс Google (разобранный) В настоящее время недоступно:

    Запрос: http : //rate-exchange.appspot.com/currency? from = USD & amp; to = EUR Ответ:
    {"to": "EUR", "rate": 0.76911244400000001, "from": "USD"}
    
    Вот еще один JSON (P) API на основе API Google (источник: этот комментарий ):http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1 Оригинал ответ на Райан .
715
ответ дан 36 revs, 25 users 25% 26 August 2018 в 03:42
поделиться
13
ответ дан hd1 26 August 2018 в 03:42
поделиться
1
ответ дан Jan Doggen 26 August 2018 в 03:42
поделиться
52
ответ дан Keyo 26 August 2018 в 03:42
поделиться
26
ответ дан Linus Caldwell 26 August 2018 в 03:42
поделиться
34
ответ дан Manny 26 August 2018 в 03:42
поделиться
52
ответ дан Ryan 26 August 2018 в 03:42
поделиться

Если вы ищете решение на основе Ruby для этой проблемы, я рекомендую использовать метод Google Calculator для решения, аналогичного следующему: http://j.mp/QIC564

require 'faraday'
require 'faraday_middleware'
require 'json'

# Debug: 
# require "pry"


country_code_src = "USD"
country_code_dst = "INR"
connection = Faraday.get("http://www.google.com/ig/calculator?hl=en&q=1#{country_code_src}=?#{country_code_dst}")

currency_comparison_hash = eval connection.body #Google's output is not JSON, it's a hash

dst_currency_value, *dst_currency_text = *currency_comparison_hash[:rhs].split(' ')
dst_currency_value = dst_currency_value.to_f
dst_currency_text = dst_currency_text.join(' ')

puts "#{country_code_dst} -> #{dst_currency_value} (#{dst_currency_text} to 1 #{country_code_src})"
26
ответ дан Linus Caldwell 14 October 2018 в 17:32
поделиться
  • 1
    Когда iGoogle выходит из цикла, это лучший вариант, предыдущий вариант www.google.com/ig больше не работает. – raphie 5 November 2013 в 02:15
  • 2
    но если вы сделаете более 10 ответов, он больше не будет работать – badr 23 July 2016 в 18:42
  • 3
    iGoogle был уволен 1 ноября 2013 года. Этот API больше не работает. – reformed 27 July 2016 в 14:06
  • 4
    www.google.com/finance больше не работает. По состоянию на сентябрь 2017 года финансовый URL был изменен на finance.google.com. : D bryanveloso.com/2017/09/14/… – jehzlau 14 September 2017 в 02:16
  • 5
    Google, перемещающийся на finance.google.com, сбил меня с толку и сломал запрос на завиток. Чтобы исправить это, попросите curl следовать переадресации: curl_setopt ($ curl, CURLOPT_FOLLOWLOCATION, true); – jaybong 10 November 2017 в 16:26
  • 6
    www.google.com/finance/converter и finance.google.com/finance/converter больше не доступны. – Christian 16 March 2018 в 19:24
Другие вопросы по тегам:

Похожие вопросы: