//遍历对象
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. HDU 5884 Sort -2016 ICPC 青岛赛区网络赛

    题目链接 #include <iostream> #include <math.h> #include <stdio.h> #include<algorith ...

  2. Android笔记:实现点击事件

    布局文件声明控件 .java文件获取控件 1. button.setOnClickListener(new View.OnClickListener() {            @Override  ...

  3. [Android Pro] Normal Permissions

    As of API level 23, the following permissions are classified as PROTECTION_NORMAL: ACCESS_LOCATION_E ...

  4. August 16th 2016 Week 34th Tuesday

    The worst solitude is to be destitute of sincere friendship. 最大的孤独莫过于没有真诚的友谊. Sometimes we pay the m ...

  5. String[] a = new String[]{"1","2"},我如果想增加一个"3"到a中,如何增加?

    在java中数组是定长的,当你声明了数组的大小后数组的长度就不能改变在你的程序中,数组的初始化大小为2,a[0]="1";a[1]="2",所以无法产生元素a[ ...

  6. XMPP框架下微信项目总结(7)聊天通信处理-发送,接受数据

    前言:通其他的功能处理一样,聊天也是通过模块发起的成为:“消息模块” 原理:1 current客户端开启通过消息模块开启并监听消息(监听通过代理). 2 当“current客户端”收到来自“other ...

  7. Orleans是什么 (一)

    官网:http://dotnet.github.io/orleans/ 文档:http://dotnet.github.io/orleans/What's-new-in-Orleans 源码:http ...

  8. MVC – 4.mvc初体验(1)

    1.MVC请求模式   2.MVC简单请求流程图 展开 折叠     3.返回string的mvc方法 展开 折叠   4.加载视图的方法  

  9. Android中libs目录下armeabi和armeabi-v7a的区别

    armeabi默认选项,支持基于 ARM* v5TE 的设备支持软浮点运算(不支持硬件辅助的浮点计算)支持所有 ARM* 设备 armeabi-v7a支持基于 ARM* v7 的设备支持硬件 FPU ...

  10. 【JAVA Properties类概述】

    一.概述. 之前说过,该对象是和IO流相结合的技术,所以和IO流结合在一起来讲比较合适. public class Propertiesextends Hashtable<Object,Obje ...