JSON 之 SuperObject(4): 增、刪、改

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender:

JSON 之 SuperObject(13): 關於 SO 與 SA 函數

通過 SuperObject 的公用函數 SO 實現一個 ISuperObject 介面非常方便;前面都是給它一個字串參數, 它的參數可以是任一類型甚至是常數數組.SA 和 SO 都是返回一 ISuperObject;SO 可以產生一個 stArray 類型的 ISuperObject, 但 SA 只會產生 stArray 類型的 ISuperObject;SA 的參數也只能是常數數組.unit Unit1;interfaceuses Windows, Messages, SysUtils,

詳測 Generics Collections: TObjectList、TObjectQueue、TObjectStack

TObjectList<T>、TObjectQueue<T>、TObjectStack<T> 分別繼承自:TList<T>、TQueue<T>、TStack<T>;它們是專門用於對象的列表, 都增加了一個 OwnsObjects 布爾屬性, 決定對象會不會自動釋放(這也通過 Create 的參數來決定)其他基本同它們的父類, 僅給 TObjectList<T> 測試一例(至此泛型相關內容學習完畢):unit

JSON 之 SuperObject(5): Format 與逸出字元

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure

JSON 之 SuperObject(14): 從 XML 中解析

SuperObject 檔案包中還有一個 SuperXmlParser 單元, 可以從 XML 中解析出 ISuperObject.SuperXmlParser 只有三個函數: XMLParseString、XMLParseStream、XMLParseFile, 分別從字串、流、檔案中解析.遺憾的是對中文不夠友好.unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics,

測試字串寫入類: TStringWriter

以前沒見過這個類, 它是在 TStringBuilder 的基礎上實現的; 使用它可以方便地把各種資料類型寫入字串.unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton;

JSON 之 SuperObject(6): 方法

SuperObject 的 JSON 對象中還可以包含 "方法", 這太有意思了; 其方法的格式是:procedure Method(const This, Params: ISuperObject; var Result: ISuperObject);//另外, 這是其資料類型的枚舉:TSuperType = (stNull, stBoolean, stDouble, stInt, stObject, stArray, stString, stMethod);測試代碼:unit

測試字串讀取類: TStringReader

TStringReader 比 TStringWriter 的方法少得多, 分別可按: 字元、行或全部讀取; 讀取字元時得到的是字元編碼, 全部或按行讀取得到是字串, 也可讀取到字元數組.unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm)

JSON 之 SuperObject(7): 可以省略的雙引號

在 JSON 中, 字串應該在雙引號中; 從上個例子才發現: 原來這個雙引號可以省略, 有空格都行當然只是在程式碼中可以省略, 對象會自動識別添加的.即如此, 下面寫法都可以:uses SuperObject;procedure TForm1.Button1Click(Sender: TObject);var jo1,jo2,jo3: ISuperObject;begin jo1 := SO('{"Name":"張三", "Age":"李四"}');

JSON 之 SuperObject(8): 關於亂碼的幾種情況 – 向 Henri Gourvest 大師報告

這幾天學習 JSON - SuperObject, 非常幸運地得到了其作者 Henri Gourvest 大師的同步指點! (Henri 大師也是 DSPack 和 GDI+ 標頭檔的作者; 大師是法國人, 竟能用中文給我回複, 沒想到!).學習中發現 SuperObject 有些地方對中文(或者說 Unicode)支援不是所期望的, 現在專貼提出來供大師鑒別.以下例子都會出現亂碼, 雖然都可以有變通的方案, 但如果不亂碼就太好了!unit Unit1;interfaceuses

簡體中文與繁體中文的轉換函式

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); end;var Form1:

文法基礎: 使用不同的資料類型標記數組

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; Button4: TButton; procedure

關於 class helper for … 文法

class helper 可能是從 Delphi 2007 增加的新文法, 因為感覺不太實用, 直到今天才測試了一下.試過之後才知道: 挺有意思的! 準系統就是修改已存在的類.Txxx = class helper for T... {T... 表示已存在的類} {可以替換已存在的方法} {也可以有新的方法、成員}end;//這之後再使用 T... 類及其子孫類時, 都會優先使用 Txxx 的修改.例一:unit Unit1;interfaceuses Windows, Messages,

JSON 之 SuperObject(9): TSuperType

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure

JSON 之 SuperObject(1)

一直盼著 Delphi 能夠直接支援 "Regex" 與 "JSON";Delphi 2009 剛來的時候, 有了 JSON, 但不好, 那時嘗試過一點. 這是以前的連結: 什麼是 JSON?Delphi 2010 帶了兩個相關單元: DBXJSON、DBXJSONReflect 貌似很強大, 但主要是給 DataSnap 準備的; 嘗試了半天, 也很失望: 可能給 DataSnap 網路資料傳遞夠用了, 但太簡陋了, 好像是沒寫完, 對中文支援也有問題.我想不等了, 找第三方吧,

JSON 之 SuperObject(10): Merge、Clone、ForcePath

unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton; procedure Button1Click(Sender:

JSON 之 SuperObject(2): 構建方式與 AsJSon

SuperObject 構建一個 JSON 的常用方法: 從字串、從檔案、從流.unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Button1: TButton; Button2: TButton; Button3: TButton;

JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry

通過 ISuperObject.AsObject 可擷取一個 TSuperTableString 對象.TSuperTableString 的常用屬性: count、GetNames、GetValuesvar jo: ISuperObject; jts: TSuperTableString;begin jo := SO('{A:1, B:2, C:3, D:{x:4, y:5, z:6}}'); jts := jo.AsObject; ShowMessage(IntToStr(jts.

JSON 之 SuperObject(3): 訪問

測試資料提前加入 Memo1 中:{ "name": "張三", /* 注釋 */ "age": 33, "sex": true, "weight": 123.456, "tel": ["86-1111111", "86-2222222"], "addresses":{"address":"A省B市", "pc":"100001"}, "children": [ { "name": "張繼", "age": "22", "sex": true

JSON 之 SuperObject(12): TSuperEnumerator、TSuperAvlIterator、ObjectFindFirst…

通過 ISuperObject.GetEnumerator 可擷取一個 TSuperEnumerator 對象.TSuperEnumerator 主要有: MoveNext 方法、Current 屬性; 使用舉例:var jo: ISuperObject; e: TSuperEnumerator;begin jo := SO('{A:1, B:2, C:3, D:[4, 5, {X:6}, {Y:[7,8,{m:9}]}]}'); e := jo.GetEnumerator;

總頁數: 61357 1 .... 4755 4756 4757 4758 4759 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.