2013-08-03 63 views
1

如果我用這個網址: https://api.xively.com/v2/feeds/65673.json?datastreams=3過濾數據流與GET調用

Xively返回此:

{ "id":65673, 
    "title":"Swimming Pool", 
    "private":"false", 
    "tags":["arduino","xbee"], 
    "description":"Monitors swimming pool conditions", 
    "feed":"https://api.xively.com/v2/feeds/65673.json", 
    "status":"live", 
    "updated":"2013-08-03T22:35:27.489534Z", 
    "created":"2012-07-02T00:23:57.518294Z", 
    "creator":"https://xively.com/users/scott216", 
    "version":"1.0.0", 
    "datastreams":[{ 
     "id":"3", 
     "current_value":"76.20", 
     "at":"2013-08-03T22:35:27.247712Z", 
     "max_value":"93.6","min_value":"-2845.0", 
     "tags":["Temp 1"], 
     "unit":{"symbol":"F","label":"Degrees"} 
    }], 
    "location":{ 
    "disposition":"fixed", 
    "exposure":"outdoor", 
    "domain":"physical" 
    } 
} 

,但只希望current_value 76.20。有沒有一種方法可以添加一個過濾器或其他東西到URL,所以它只返回當前值?

回答

0

我假設你不打算使用JSON解析器,否則它將不會成爲你需要的問題,因爲它只是parsed_json['datastreams'][0]['current_value']

使用Xively API V2,您可以使用CSV格式,它更接近您想要的。

  1. 檢索與數據流過濾器的進給,你剛剛出現,但使用CSV:

    GET https://api.xively.com/v2/feeds/65673.csv?datastreams=3

    3,2013-08-05T09:18:01.566388Z,59.10

  2. 檢索數據流本身:

    GET https://api.xively.com/v2/feeds/65673/datastreams/3.csv

    2013-08-05T09:18:01.566388Z,59.10

第一個例子僅是有道理的,當你在一個單一請求中抓取一個以上的數據流,但你不希望所有的人,所以你會叫:

GET https://api.xively.com/v2/feeds/65673.csv?datastreams=1,2,3

如果你想要的只是一個數據流,應該使用逗號上的第二個例子和分裂。

+0

JSON可能工作,我從來沒有使用它。我正嘗試使用Tropo的服務。他們支持JSON:https://www.tropo.com/docs/webapi/overview。我希望Tropo從Xively獲得我的泳池溫度,然後通過短信發送給我。 –