2015-01-21 67 views
0

我想從126.com中獲取Meteor.js中的數據。這裏有一個例子:Meteor.js HTTP.get獲取JSON引號並解析結果似乎包含回調函數

http://api.money.126.net/data/feed/1000001,money.api

,這將得到以下(一個可以在瀏覽器中打開上述網址進行測試):

_ntes_quote_callback({"1000001":{"code": "1000001", "percent": 0.042661, "high": 14.6, "askvol3": 318361, "askvol2": 93200, "askvol5": 214900, "askvol4": 62327, "price": 14.42, "open": 13.88, "bid5": 14.38, "bid4": 14.39, "bid3": 14.4, "bid2": 14.41, "bid1": 14.42, "low": 13.75, "updown": 0.59, "type": "SZ", "bidvol1": 459480, "status": 0, "bidvol3": 1713089, "bidvol2": 518100, "symbol": "000001", "update": "2015/01/21 15:34:15", "bidvol5": 508800, "bidvol4": 436678, "volume": 194053037, "askvol1": 90420, "ask5": 14.47, "ask4": 14.46, "ask1": 14.43, "name": "\u5e73\u5b89\u94f6\u884c", "ask3": 14.45, "ask2": 14.44, "arrow": "\u2191", "time": "2015/01/21 15:34:09", "yestclose": 13.83, "turnover": 2758192756.95} });

我能得到的內容。問題出在主導的「_ntes_quote_callback」,我認爲我期望使用該名稱設置一個函數並返回參數?怎麼樣?感謝您的任何建議。

我很新的JavaScript和HTML,所以我嘗試了一些代碼,雖然不能做到。我已經試過如下:

在客戶端

_ntes_quote_callback = (jsonobj)-> jsonobj stock = Session.get 'stock' Meteor.call 'getQuote', stock, (err, results)-> if err then return console.log results.content Session.set 'quote', JSON.parse results.content.val()

和服務器端:

if Meteor.isServer Meteor.methods getQuote: (stock) -> url = "http://api.money.126.net/data/feed/#{stock}" HTTP.call 'GET', url

回答

0

它可能會提供一個查詢字符串PARAM指定回調(或沒有),但是如果有任何API文檔,他們用普通話(我認爲),這排除了爲我閱讀它們。

然而,即使做不到這一點你可以操縱返回的數據:

var regex = /^_ntes_quote_callback\((.*)\);$/, 
    rawContent = HTTP.get(url).content, 
    json = regex.exec(rawContent.content) && JSON.parse(regex.exec(rawContent.content)[1]); 

變量json應該然後是包含您的數據(抱歉,我沒有做的CoffeeScript)的對象。

+0

感謝您的指導。對咖啡劇本抱歉。沒有找到api文檔,因爲它經常發生在本地網站。所以我應該首先學習jQuery,至少可以使用你建議的輔助方法! – jigme1968 2015-01-22 01:19:08

+0

或者你可以[轉換](http://js2coffee.org)。 – richsilv 2015-01-22 07:33:24

+0

謝謝richsilv,我試圖理解你的示例代碼。 – jigme1968 2015-01-22 13:29:23