JSON 之 SuperObject(9): TSuperType
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
uses SuperObject;
//类型
procedure TForm1.Button1Click(Sender: TObject);
function GetJsonType(I: ISuperObject): string;
begin
case I.DataType of
stNull: Result := 'stNull';
stBoolean: Result := 'stBoolean';
stDouble: Result := 'stDouble';
stInt: Result := 'stInt';
stObject: Result := 'stObject';
stArray: Result := 'stArray';
stString: Result := 'stString';
stMethod: Result := 'stMethod';
end;
end;
var
jo: ISuperObject;
begin
jo := SO('{A:1, B:2}');
ShowMessage(GetJsonType(jo)); {stObject}
jo := SO;
ShowMessage(GetJsonType(jo)); {stObject}
jo := SO('abc');
ShowMessage(GetJsonType(jo)); {stString}
jo := SO();
ShowMessage(GetJsonType(jo)); {stInt}
jo := SO('123');
ShowMessage(GetJsonType(jo)); {stInt}
jo := SO(3.14);
ShowMessage(GetJsonType(jo)); {stDouble}
jo := SO('3.14');
ShowMessage(GetJsonType(jo)); {stDouble}
jo := SO(False);
ShowMessage(GetJsonType(jo)); {stBoolean}
jo := SO('[1,2,3,a,b,c]');
ShowMessage(GetJsonType(jo)); {stArray}
jo := TSuperObject.Create(stMethod);
ShowMessage(GetJsonType(jo)); {stMethod}
jo := SO('null');
ShowMessage(GetJsonType(jo)); {stNull}
end;
//判断
procedure TForm1.Button2Click(Sender: TObject);
var
jo: ISuperObject;
begin
jo := SO('[]');
if jo.DataType = stArray then ShowMessage('stArray');
if ObjectIsType(jo, stArray) then ShowMessage('stArray');
end;
end.
JSON 之 SuperObject(9): TSuperType的更多相关文章
- JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry
JSON 之 SuperObject(11): TSuperTableString.TSuperAvlEntry - 万一 - 博客园http://www.cnblogs.com/del/archiv ...
- JSON 之 SuperObject(6): 方法
SuperObject 的 JSON 对象中还可以包含 "方法", 这太有意思了; 其方法的格式是: procedure Method(const This, Params: IS ...
- JSON 之 SuperObject(8): 关于乱码的几种情况 - 向 Henri Gourvest 大师报告
这几天学习 JSON - SuperObject, 非常幸运地得到了其作者 Henri Gourvest 大师的同步指点! (Henri 大师也是 DSPack 和 GDI+ 头文件的作者; 大师是法 ...
- JSON 之 SuperObject(7): 可以省略的双引号
在 JSON 中, 字符串应该在双引号中; 从上个例子才发现: 原来这个双引号可以省略, 有空格都行 当然只是在程序代码中可以省略, 对象会自动识别添加的. 即如此, 下面写法都可以: uses Su ...
- JSON 之 SuperObject(5): Format 与转义字符
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
- JSON 之 SuperObject(2): 构建方式与 AsJSon
SuperObject 构建一个 JSON 的常用方法: 从字符串.从文件.从流. unit Unit1; interface uses Windows, Messages, SysUtils, ...
- JSON 之 SuperObject(1)
一直盼着 Delphi 能够直接支持 "正则表达式" 与 "JSON"; Delphi 2009 刚来的时候, 有了 JSON, 但不好, 那时尝试过一点. 这 ...
- JSON 之 SuperObject(10): Merge、Clone、ForcePath
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
- JSON 之 SuperObject(4): 增、删、改
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...
随机推荐
- 研究AVCaptureDevice
一.Apple Resource 1. wwdc 2014: Camera Caputre: Manual Controls 2. Exaple code: AVCam&AVCamManul ...
- aspose.cell 自定义模板 SUM无效
数字类型的单元格, 显示 解决方案: 绑定的DataTable的列为字符串类型. 应该将其设置成数字类型的列
- tcp 多线程与多进程调用close
http://blog.csdn.net/russell_tao/article/details/13092727 大家知道,所谓线程其实就是“轻量级”的进程.创建进程只能是一个进程(父进程)创建另一 ...
- 2016年度 JavaScript 展望(下)
[编者按]本文作者为资深 Web 开发者 TJ VanToll, TJ 专注于移动端 Web 应用及其性能,是<jQuery UI 实践> 一书的作者. 本文系 OneAPM 工程师编译呈 ...
- Java异常类和自定义异常类
自定义异常类: public class ExtendsException extends Exception { private static final long serialVersionUID ...
- POJ 1953
//FINBONACI数列 #include <iostream> #define MAXN 100 using namespace std; int _m[MAXN]; int main ...
- Jquery 中map和each的区别
<script type="text/javascript"> $(function () { var json = {"Name":"L ...
- Windows 回调监控 <一>
在x86的体系结构中,我们常用hook关键的系统调用来达到对系统的监控,但是对于x64的结构,因为有PatchGuard的存在,对于一些系统关键点进行hook是很不稳定的,在很大几率上会导致蓝屏的发生 ...
- QTP菜单消失的解决办法
解决办法一:点击QTP上方菜单栏“Tools” menu->options 项,点击"General" tab, 最后点击“Restore Layout”按钮. 解决办法二: ...
- SSH开发实践part2:双向1-N连接配置
1 OK,上一篇已经介绍了项目开发的前期准备工作,具体内容可以参考:http://www.cnblogs.com/souvenir/p/3783686.html 按照开发步骤,我们现在已经可以开始进行 ...