首页 > 代码库 > superobject使用方法
superobject使用方法
superobject使用方法
ISuperObject.AsObject 可获取一个 TSuperTableString 对象.
TSuperTableString 的常用属性: count、GetNames、GetValues
var 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.count)); // 4 ShowMessage(jts.GetNames.AsString); // ["D","C","B","A"] ShowMessage(jts.GetValues.AsString); // [{"z":6,"y":5,"x":4},3,2,1] jts := jo[‘D‘].AsObject; ShowMessage(IntToStr(jts.count)); // 3 ShowMessage(jts.GetNames.AsString); // ["z","y","x"] ShowMessage(jts.GetValues.AsString); // [6,5,4]end;
使用FOR...IN...遍历子对象,不适用于DELPHI7等低版本,因为它们不支持此语法。
var jo,i: ISuperObject;begin jo := SO(‘{A:1, B:2, C:3, D:[4, 5, {X:6}, {Y:[7,8,{m:9}]}]}‘); for i in jo do ShowMessage(i.AsString);end;
TSuperAvlIterator 枚举出的是 TSuperAvlEntry 对象(其包含 Name 和 Value);
获取 TSuperAvlIterator 方法:
TSuperTableString.GetEnumerator 或者 ISuperObject.AsObject.GetEnumerator.
var jo: ISuperObject; ite: TSuperAvlIterator;begin jo := SO(‘{A:1, B:2, C:3, D:[4, 5, {X:6}, {Y:7}]}‘); ite := jo.AsObject.GetEnumerator;
ite.First;
while ite.MoveNext do
begin
lname := ite.Current.Name;
lvalue := ite.Current.Value.AsString;
ite.Next;
end;
end;
ObjectFindFirst、ObjectFindNext、ObjectFindClose 是 SuperObject 给的另一种枚举元素的方式.
它用到了一个结构:
TSuperObjectIter = record key: SOString; val: ISuperObject; Ite: TSuperAvlIterator;end;//应用举例:var jo: ISuperObject; iter: TSuperObjectIter;begin jo := SO(‘{A:1, B:2, C:3, D:[4, 5, {X:6}, {Y:7}]}‘); if ObjectFindFirst(jo, iter) then begin repeat ShowMessageFmt(‘%s - %s‘, [iter.key, iter.val.AsString]); until not ObjectFindNext(iter); end; ObjectFindClose(iter);end;//或者:var jo: ISuperObject; iter: TSuperObjectIter;begin jo := SO(‘{A:1, B:2, C:3, D:[4, 5, {X:6}, {Y:7}]}‘); if ObjectFindFirst(jo, iter) then begin repeat ShowMessageFmt(‘%s - %s‘, [iter.Ite.Current.Name, iter.Ite.Current.Value.AsString]); until not ObjectFindNext(iter); end; ObjectFindClose(iter);end;
superobject使用方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。