zoukankan      html  css  js  c++  java
  • 3、利用SuperObject 循环处理Json深层次的值

    //遍历对象
    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.     "name": "张三", 
    2.     "age": 33, 
    3.     "sex": true, 
    4.     "weight": 123.456, 
    5.     "tel": [ "86-1111111", "86-2222222"  ], 
    6.     "addresses": { 
    7.         "address": "A省B市", 
    8.         "pc": "100001" 
    9.     },  
    10.     "children": [  
    11.         
    12.             "name": "张继", 
    13.             "age": "22", 
    14.             "sex": true, 
    15.             "M_TYPE": [ 
    16.                 { 
    17.                     "MACHINE_TYPE": 1, 
    18.                     "MACHINE_NAME": "传统", 
    19.                     "MACHINE": [ { "MACHINE_NO": "26088", "STATUS": 2, "BALANCE": 12.3 }  ]  
    20.                 },  
    21.                 
    22.                     "MACHINE_TYPE": 2, 
    23.                     "MACHINE_NAME": "竞彩", 
    24.                     "MACHINE": [{ "MACHINE_NO": "26093", "STATUS": 1, "BALANCE": 100.22 } ]  
    25.                 }  
    26.             ]  
    27.         },  
    28.         
    29.             "name": "张承", 
    30.             "age": "11", 
    31.             "sex": false, 
    32.             "M_TYPE": [ 
    33.                 { 
    34.                     "MACHINE_TYPE": 3, 
    35.                     "MACHINE_NAME": "传统", 
    36.                     "MACHINE": [{"MACHINE_NO": "26038", "STATUS": 3, "BALANCE": 1300.5} ]  
    37.                 }  
    38.             ]  
    39.         }  
    40.     ]  
    41. }  
  • 相关阅读:
    centos7安装mysql5.7
    centos7 多网卡绑定bond0 之mod4
    二、Windows Server 2016 AD 组织单位、组、用户的创建
    一、Windows Server 2016 AD服务器搭建
    (2)Linux中经常说的CPU上下文切换是什么意思
    (1)Linux系统中到底应该怎么理解系统的平均负载
    centos安装Docker与使用&&构建业务镜像挂载卷harbor仓库的高可用及网络模式和资源限制介绍
    windows和linux各类服务常用端口号汇总
    CentOS7.6搭建LAMP-wordpress论坛搭建
    centos下iptables防火墙规则用法和概述
  • 原文地址:https://www.cnblogs.com/rogge7/p/4372295.html
Copyright © 2011-2022 走看看