2016-06-12 4 views
2

Я построил простую функцию запроса, чтобы получить JSON от Yahoo Finance API, но у меня проблемы с извлечением данных из JSON.Как извлечь данные из Yahoo Finance JSON, используя node.js?

Вот моя функция

var request = require("request"); 

var stock_url = "http://finance.yahoo.com/webservice/v1/symbols/FB/quote?format=json&view=%E2%80%8C%E2%80%8Bdetail"; 

request(stock_url, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
     var stock_data = body; 
     console.log("Yahoo Finance API: ", stock_data) 
     var stock_price = stock_data.list.resources[0].resource.fields.price; 
     console.log("stock_price: ", stock_price);  
    }; 
}); 

JSON вернулся хранится в var stock_data успешно, а затем я пытаюсь извлечь данные «цена» с var stock_price = stock_data.list.resources[0].resource.fields.price, но я получаю TypeError: не могу прочитать свойство 'Ресурсное не определено.

Ниже приведен JSON, я пробовал несколько производных для var stock_price без везения. Буду признателен за любую оказанную помощь.

{ 
    "list": { 
    "meta": { 
     "type": "resource-list", 
     "start": 0, 
     "count": 1 
    }, 
    "resources": [ 
     { 
     "resource": { 
      "classname": "Quote", 
      "fields": { 
      "name" : "Facebook, Inc.", 
      "price" : "116.620003", 
      "symbol" : "FB", 
      "ts" : "1465588800", 
      "type" : "equity", 
      "utctime" : "2016-06-10T20:00:00+0000", 
      "volume" : "18510826"    
      } 
     } 
     } 
    ] 
    } 
} 
+0

Необходимо выполнить синтаксический анализ объекта перед строкой – charlietfl

+0

, когда вы выполните следующий код 'console.log (typeof body)' что напечатано? –

+0

@ DanielKrom строка печатается. Размышление об этом с объектом. Спасибо charlietfl – CBar

ответ

0

Request возвращает body как значение строки.

Затем вы должны разобрать его var stock_data = JSON.parse(body).

BTW вы можете использовать существующие yahoo-finance реализации для узла и не переписывать его самостоятельно.

+1

Работал, спасибо за помощь и указав варианты yahoo-finance. – CBar

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

  • Нет связанных вопросов^_^