//遍历对象
procedure TForm1.Button5Click(Sender: TObject);
var
item,jo: ISuperObject;
ja,JA_TYPE,JA_MAC:TSuperArray; //json数组
i,j,k:Integer;
jts: TSuperTableString; //TSuperTableString 的常用属性: count、GetNames、GetValues
begin
jo := SO(Memo1.Text);
jts:=jo.AsObject;
mmo1.Lines.Add('结点数:'+IntToStr(jts.count ));
mmo1.Lines.Add('键名:'+jts.GetNames.AsString);
mmo1.Lines.Add('键值:'+jts.GetValues.AsString);
jts:=jo['addresses'].AsObject;
mmo1.Lines.Add('结点数:'+IntToStr(jts.count ));
mmo1.Lines.Add(jts.GetNames.AsString);
mmo1.Lines.Add('键值:'+jts.GetValues.AsString);
jts:=jo.A['children'].N[0].AsObject;
mmo1.Lines.Add('结点数:'+IntToStr(jts.count ));
mmo1.Lines.Add(jts.GetNames.AsString);
mmo1.Lines.Add('键值:'+jts.GetValues.AsString);
jts:=jo.A['children'].N[0].A['M_TYPE'].N[0].AsObject;
mmo1.Lines.Add('结点数:'+IntToStr(jts.count ));
mmo1.Lines.Add(jts.GetNames.AsString);
mmo1.Lines.Add('键值:'+jts.GetValues.AsString);
jts:=jo.A['children'].N[0].A['M_TYPE'].N[0].A['MACHINE'].N[0].AsObject;
mmo1.Lines.Add('结点数:'+IntToStr(jts.count ));
mmo1.Lines.Add(jts.GetNames.AsString);
mmo1.Lines.Add('键值:'+jts.GetValues.AsString); ja:=jo.A['children']; //等同 ja:=jo.O['children'].AsArray; for i := 0 to ja.Length-1 do
begin mmo1.Lines.Add('店主:'+ja.O[i].s['name']); //区分大小写
JA_TYPE:=ja.O[i].O['M_TYPE'].AsArray; for j := 0 to ja_type.Length-1 do
begin
mmo1.Lines.Add('出票类型:'+IntToStr(JA_TYPE.O[j].I['MACHINE_TYPE']));
mmo1.Lines.Add('出票类型名:'+JA_TYPE.O[j].s['MACHINE_NAME']);
JA_MAC:=JA_TYPE.O[j].O['MACHINE'].AsArray;
for k := 0 to ja_mac.Length-1 do
begin
mmo1.Lines.Add('机器编号:'+JA_MAC.O[k].s['MACHINE_NO']);
mmo1.Lines.Add('机器状态:'+IntToStr(JA_MAC.O[k].I['STATUS']));
mmo1.Lines.Add('机器余额:'+FloatToStr(JA_MAC.O[k].D['BALANCE']));
end;
end;
end;
// for item in jo do ShowMessage(item.AsJSon(False, False));
end;

 //Json 格式如下

 

  1. {
  2. "name": "张三",
  3. "age": 33,
  4. "sex": true,
  5. "weight": 123.456,
  6. "tel": [ "86-1111111", "86-2222222"  ],
  7. "addresses": {
  8. "address": "A省B市",
  9. "pc": "100001"
  10. },
  11. "children": [
  12. {
  13. "name": "张继",
  14. "age": "22",
  15. "sex": true,
  16. "M_TYPE": [
  17. {
  18. "MACHINE_TYPE": 1,
  19. "MACHINE_NAME": "传统",
  20. "MACHINE": [ { "MACHINE_NO": "26088", "STATUS": 2, "BALANCE": 12.3 }  ]
  21. },
  22. {
  23. "MACHINE_TYPE": 2,
  24. "MACHINE_NAME": "竞彩",
  25. "MACHINE": [{ "MACHINE_NO": "26093", "STATUS": 1, "BALANCE": 100.22 } ]
  26. }
  27. ]
  28. },
  29. {
  30. "name": "张承",
  31. "age": "11",
  32. "sex": false,
  33. "M_TYPE": [
  34. {
  35. "MACHINE_TYPE": 3,
  36. "MACHINE_NAME": "传统",
  37. "MACHINE": [{"MACHINE_NO": "26038", "STATUS": 3, "BALANCE": 1300.5} ]
  38. }
  39. ]
  40. }
  41. ]
  42. }

3、利用SuperObject 循环处理Json深层次的值的更多相关文章

  1. 利用JavaScriptSerializer类 进行Json对象的序列化和反序列化和过滤

    项目下载:JavaScriptSerializer_对JSON对象序列化与反序列化及过滤器 利用<JavascriptSerializer类> 进行Json对象的序列化和反序列化 1. 首 ...

  2. iOS 利用for循环创建九宫格

    // 利用for循环创建九宫格 - (void)createScratchableLatex{ // 总列数 ; // 每一格的尺寸 CGFloat cellW = (self.frame.size. ...

  3. JS 循环遍历JSON数据 分类: JS技术 JS JQuery 2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{&quot;options&quot;:&quot;[{

    JS 循环遍历JSON数据 分类: JS技术 JS JQuery2010-12-01 13:56 43646人阅读 评论(5) 收藏 举报 jsonc JSON数据如:{"options&q ...

  4. .Net利用Newtonsoft进行解析Json的快捷方法

    现在异构系统之间的数据交换多采用Json格式 .Net如何快捷地解析Json和将Object转换成json呢? 1.利用Newtonsoft解析Json字符串 在百度上查找资料,利用Newtonsof ...

  5. 编程题:利用for循环打印 9*9 表?

    利用for循环打印 9*9  表? 1*1=1 1*2=2  2*2=4 1*3=3  2*3=6  3*3=9 1*4=4  2*4=8  3*4=12  4*4=16 1*5=5  2*5=10  ...

  6. 利用扩展方法重写JSON序列化和反序列化

    利用.NET 3.5以后的扩展方法重写JSON序列化和反序列化,在代码可读性和可维护性上更加加强了. 首先是不使用扩展方法的写法 定义部分: /// <summary>  /// JSON ...

  7. js循环读取json数据,将读取到的数据用js写成表格

    ①js循环读取json数据的方式: var data=[{"uid":"2688","uname":"*江苏省南菁高级中学 022 ...

  8. Vue之循环遍历Json数据,填充Table表格

    简单记一次Vue循环遍历Json数据,然后填充到Table表格中,展示到前端的代码: async getData(id) { const res = await this.$store.api.new ...

  9. 习题两则的简化(利用for循环)

    习题一.打印26个英文字母 public class PrintChars { public static void main(String[] args) { char ch = 'a'; int ...

随机推荐

  1. 【XLL 框架库函数】 InitFramework

    初始化框架库,它是简单的初始化临时 XLOPER/XLOPER12 内存结构,释放任何已经分配的内存. short WINAPI InitFramework(void); 参数 这个函数没有参数 备注 ...

  2. August 8th 2016, Week 33rd Monday

    Everything is going on, but don't give up trying. 万事随缘,但不要放弃努力. Every time when I want to give up, y ...

  3. pmap

    .[root@localhost security]# pmap -d : -bash Address Kbytes Mode Offset Device Mapping r-x-- : bash b ...

  4. NYOJ题目57 6174问题

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAscAAAJLCAIAAACE5qzaAAAgAElEQVR4nO3dMXKrutvH8XcT6bOQ1C ...

  5. jQuery - 2.jQuery选择器

    1.id 选择器 2.标签选择器 3.类选择器 4.复合选择器 5.层次选择器 JQuery的迭代   JQuery选择器 JQuery选择器用于查找满足条件的元素,比如可以用$("#控件I ...

  6. Delphi中exit、break、continue等跳出操作的区别

    Delphi中表示跳出的有break,continue,abort,exit,halt,runerror等 1.break 强制退出最近的一层循环(注意:只能放在循环里:而且是只能跳出最近的一层循环) ...

  7. Pyqt 屏幕截图工具

    从Pyqt的examples中看到一段截图代码, (路径:examplas\desktop\screenshot.py) 所以想自己UI下界面,手动练习下 通过UI生成的: Screenshot.py ...

  8. Linux进程状态 ( Linux Process State Codes)

    进程状态代码及说明: STATE代码 说明 D 不可中断的睡眠. 通常是处于I/O之中. R 运行中/可运行. 正处于运行队列中. S 可中断的睡眠. 等待某事件发生. T 已停止. 可能是因为she ...

  9. [LeetCode] Letter Combinations of a Phone Number

    Given a digit string, return all possible letter combinations that the number could represent. A map ...

  10. Windows环境下Oracle数据库的自动备份脚本

    批处理文件(.bat) @echo off echo ================================================ echo  Windows环境下Oracle数据 ...