全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:471
推到 Plurk!
推到 Facebook!

JSON求教。

答題得分者是:andy424345
stacker_liew
初階會員


發表:50
回覆:116
積分:48
註冊:2004-05-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2017-04-03 10:41:23 IP:42.153.xxx.xxx 未訂閱
小弟是JSON新手,想請教要如何向一個網址取得它的資料,網址是:https://blockchain.info/ticker

假如它得到結果如下,要怎麼分析它?
{
  "USD" : {"15m" : 478.68, "last" : 478.68, "buy" : 478.55, "sell" : 478.68,  "symbol" : "$"},
  "JPY" : {"15m" : 51033.99, "last" : 51033.99, "buy" : 51020.13, "sell" : 51033.99,  "symbol" : "¥"},
  "CNY" : {"15m" : 2937.05, "last" : 2937.05, "buy" : 2936.25, "sell" : 2937.05,  "symbol" : "¥"},
  "SGD" : {"15m" : 605.39, "last" : 605.39, "buy" : 605.22, "sell" : 605.39,  "symbol" : "$"},
  "HKD" : {"15m" : 3709.91, "last" : 3709.91, "buy" : 3708.9, "sell" : 3709.91,  "symbol" : "$"},
  "CAD" : {"15m" : 526.72, "last" : 526.72, "buy" : 526.58, "sell" : 526.72,  "symbol" : "$"},
  "NZD" : {"15m" : 582.26, "last" : 582.26, "buy" : 582.1, "sell" : 582.26,  "symbol" : "$"},
  "AUD" : {"15m" : 524.61, "last" : 524.61, "buy" : 524.46, "sell" : 524.61,  "symbol" : "$"},
  "CLP" : {"15m" : 283014.81, "last" : 283014.81, "buy" : 282937.95, "sell" : 283014.81,  "symbol" : "$"},
  "GBP" : {"15m" : 297.4, "last" : 297.4, "buy" : 297.32, "sell" : 297.4,  "symbol" : "£"},
  "DKK" : {"15m" : 2756.84, "last" : 2756.84, "buy" : 2756.09, "sell" : 2756.84,  "symbol" : "kr"},
  "SEK" : {"15m" : 3403.41, "last" : 3403.41, "buy" : 3402.49, "sell" : 3403.41,  "symbol" : "kr"},
  "ISK" : {"15m" : 56797.78, "last" : 56797.78, "buy" : 56782.35, "sell" : 56797.78,  "symbol" : "kr"},
  "CHF" : {"15m" : 447.19, "last" : 447.19, "buy" : 447.07, "sell" : 447.19,  "symbol" : "CHF"},
  "BRL" : {"15m" : 1093.06, "last" : 1093.06, "buy" : 1092.77, "sell" : 1093.06,  "symbol" : "R$"},
  "EUR" : {"15m" : 370.13, "last" : 370.13, "buy" : 370.03, "sell" : 370.13,  "symbol" : "€"},
  "RUB" : {"15m" : 17806.28, "last" : 17806.28, "buy" : 17801.44, "sell" : 17806.28,  "symbol" : "RUB"},
  "PLN" : {"15m" : 1557.38, "last" : 1557.38, "buy" : 1556.96, "sell" : 1557.38,  "symbol" : "zł"},
  "THB" : {"15m" : 15398.04, "last" : 15398.04, "buy" : 15393.86, "sell" : 15398.04,  "symbol" : "฿"},
  "KRW" : {"15m" : 494436.55, "last" : 494436.55, "buy" : 494302.27, "sell" : 494436.55,  "symbol" : "₩"},
  "TWD" : {"15m" : 14340.68, "last" : 14340.68, "buy" : 14336.79, "sell" : 14340.68,  "symbol" : "NT$"}

}
編輯記錄
stacker_liew 重新編輯於 2017-04-03 10:42:01, 註解 無‧
stacker_liew 重新編輯於 2017-04-03 10:42:59, 註解 無‧
stacker_liew 重新編輯於 2017-04-18 10:08:15, 註解 無‧
stacker_liew 重新編輯於 2017-04-18 10:08:45, 註解 無‧
andy424345
一般會員


發表:2
回覆:9
積分:12
註冊:2011-03-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2017-06-26 11:32:37 IP:60.251.xxx.xxx 未訂閱
uses System.JSON;

var
JSONObject: TJSONObject;
JSONValue: TJSONValue;
i: integer;
d: double;
s: string;
begin
JSONObject := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(C_S),0) as TJSONObject;
for i := 0 to JSONObject.Count -1 do
begin
JSONValue := JSONObject.Pairs[i].JsonValue;
d := JSONValue.GetValue('15m');
d := JSONValue.GetValue('last');
d := JSONValue.GetValue('buy');
d := JSONValue.GetValue('sell');
s := JSONValue.GetValue('symbol');
end;
end;
C_S是你讀取網頁資料的結果
P.S: double也可以改成string 之後再轉型也OK
編輯記錄
andy424345 重新編輯於 2017-06-26 11:48:28, 註解 無‧
andy424345 重新編輯於 2017-06-28 13:37:23, 註解 無‧
andy424345 重新編輯於 2017-06-28 13:37:55, 註解 無‧
andy424345 重新編輯於 2017-06-28 13:38:44, 註解 無‧
andy424345
一般會員


發表:2
回覆:9
積分:12
註冊:2011-03-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2017-06-28 13:39:59 IP:60.251.xxx.xxx 未訂閱
不知道為什麼按修改後還是沒有變...
寫法是:
d := JSONValue.GetValue<double>('15m');
d := JSONValue.GetValue<double>('last');
d := JSONValue.GetValue<double>('buy');
d := JSONValue.GetValue<double>('sell');
s := JSONValue.GetValue<string>('symbol');
編輯記錄
andy424345 重新編輯於 2017-06-28 14:40:14, 註解 無‧
GrandRURU
站務副站長


發表:234
回覆:1654
積分:1752
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2017-06-28 15:19:25 IP:59.120.xxx.xxx 未訂閱
System.JSON.TJSONValue.GetValue - RAD Studio API Documentation
請問,是這個對嗎? ^ ^
===================引 用 andy424345 文 章===================
不知道為什麼按修改後還是沒有變...
寫法是:
d := JSONValue.GetValue<double>('15m');
d := JSONValue.GetValue<double>('last');
d := JSONValue.GetValue<double>('buy');
d := JSONValue.GetValue<double>('sell');
s := JSONValue.GetValue<string>('symbol');
andy424345
一般會員


發表:2
回覆:9
積分:12
註冊:2011-03-29

發送簡訊給我
#5 引用回覆 回覆 發表時間:2017-06-29 09:14:56 IP:60.251.xxx.xxx 未訂閱
是的!
===================引 用 GrandRURU 文 章===================
System.JSON.TJSONValue.GetValue - RAD Studio API Documentation
請問,是這個對嗎? ^ ^
===================引 用 andy424345 文 章===================
不知道為什麼按修改後還是沒有變...
寫法是:
d := JSONValue.GetValue<double>('15m');
d := JSONValue.GetValue<double>('last');
d := JSONValue.GetValue<double>('buy');
d := JSONValue.GetValue<double>('sell');
s := JSONValue.GetValue<string>('symbol');
系統時間:2017-11-19 20:05:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!