2017/06/29

JSON Parse in Delphi XE (03)

前情提要:

這篇要說明 JSON 格式在 Delphi 裡是怎麼被理解的。

JSON 名詞解釋:
JSON(JavaScript Object Notation),這世界上有兩大資料交換語言


一個是 XML,另一個就是 JSON

因為 JSON 廣泛被使用在網際網路上,所以 Delphi 也在 2009 年時加入了 JSON 的 RPC,正式成為 DataSnap framework 傳輸規範。

JSON 的鐵路圖表 (Railroad Diagram) 說明書坊間資源寫很多,在這邊就不贅述了

JSON Object 𨭱路圖表 (Railroad Diagram) 圖片來源



以本篇的範例來看,簡化之後的內容如下:
{ "USD" : {
    "15m" : 2510.86,
   "last" : 2510.86, 
    "buy" : 2510.01, 
   "sell" : 2510.86,
 "symbol" : "$"} }

JSON Object 在 Delphi 裡就是以 TJSONObject 物件視之。

已知最外圈的就是一個 Big Object,名稱隨喜。 (笑)

按照 Delphi 寫法即是:
JSONObj := TJSONObject.ParseJSONValue(Source JSON String).

有 Object (果實)便有 Property(果肉),Property 是以【String : Value】型式存在的。

以資料庫類比的話,大概是【FieldName : Value】,這樣就比較瞭解了吧!

取得果實後,要取出果肉了,Delphi 是以 TJSONPair 實現,實際來寫是:
JSONPair := LJSObj.Get(0)

JSONPair 拆開得到:
string : value => "USD" : {"15m"......."$"}

Delphi 用 TJSONPair.JSONString 來解釋 string,用 TJSONPair.JSONValue 來解釋 value。

按照這個範例來看:

TJSONPair.JSONString 會取得 "USD"。

TJSONPair.JSONValue 則會,取得下一個物件

其實就是俄羅斯娃娃的概念 圖片來源


然後,聰明如您,您應該知道怎麼解了吧!
 
== 全文完 ==

2 則留言:

  1. 回覆
    1. 很高興你閱讀這篇文章。

      邀請你參考一下這本書:
      http://grandruru.blogspot.com/2020/07/delphi-in-depth-datasnap.html

      期待你的閱讀!

      刪除