Delphi SuperObject json操作类的基本用法
发布时间 2023-04-02 22:45:09作者: 软件吴
Delphi2009中开始提供了json支持,但并不完善,提供的单元为(Delphi 2009-Delphi XE4 为DBXJson,很不好用,当时据说是为Datasnap开发准备,方法功能不完善,缺少比如XE5以上版本(System.json)中所提供的GetValue等方法。所以经过各种测试json官方提供的几个单元,比如ljkjson等。最终发现还是SuperObject最好用。简单整理一下使用方法:
|
var |
|
jo, jf: ISuperObject; |
|
ja: TSuperArray; |
|
s,sColName,sValue: string; |
|
|
|
|
|
|
|
|
|
|
|
|
|
jo := SO(AJson); |
|
|
|
ja:= jo.A['DATA']; |
|
ja:=SO(AJson).AsArray; |
|
jf := ja.O[0]; |
|
ColList:=TStringList.Create; |
|
for i := 0 to jf.AsObject.count - 1 do |
|
begin |
|
ColList.Add(jf.AsObject.GetNames.AsArray[i].AsString ); |
|
|
|
end; |
|
|
|
showmessage(ColList.Text); |
|
|
|
返回字段值: |
|
CpnID |
|
ShortName |
|
FullName |
|
|
|
showmessage(jf.AsString); |
|
|
|
返回值: |
|
|
|
|
|
|
|
sColName :=jf.AsObject.GetNames.AsString; |
|
showmessage(sColName); |
|
|
|
返回值: |
|
["FullName","ShortName","CpnID"] |
|
|
|
sValue:=jf.AsObject.GetValues.AsString ; |
|
showmessage(sValue); |
|
|
|
返回值: |
|
["宝沪国际(A)貿易有限公司","宝沪国际-A","BHA"] |
|
|
|
|
|
jf.AsObject.GetValues.AsArray[k].AsString; |
节点循环取值示例:
|
procedure TForm1.Button7Click(Sender: TObject); |
|
var |
|
jo: ISuperObject; |
|
i: integer; |
|
begin |
|
jo := SO('{"A":1, B:2, C:3, D:4,E:5,F:6}'); |
|
Memo2.Clear; |
|
for i := jo.AsObject.count - 1 downto 0 do |
|
begin |
|
Memo2.Lines.Add(jo.AsObject.GetNames.AsArray[i].AsString + ':' + jo.AsObject.GetValues.AsArray[i].AsString); |
|
end; |
|
Memo2.Lines.Add(jo.S['E']); |
|
|
|
for i := jo.AsObject.count - 1 downto 0 do |
|
begin |
|
Memo2.Lines.Add(jo.AsObject.GetNames.AsArray[i].AsString ); |
|
end; |
|
|
|
|
|
|
|
end; |
执行结果: