rio遍历全国省市json结构

{
        "value": "110000",
        "label": "北京市",
        "children": [
          {
            "value": "110101",
            "label": "东城区"
          },
          {
            "value": "110102",
            "label": "西城区"
          },
          {
            "value": "110105",
            "label": "朝阳区"
          },
          {
            "value": "110106",
            "label": "丰台区"
          },
          {
            "value": "110107",
            "label": "石景山区"
          },
          {
            "value": "110108",
            "label": "海淀区"
          },
          {
            "value": "110109",
            "label": "门头沟区"
          },
          {
            "value": "110111",
            "label": "房山区"
          },
          {
            "value": "110112",
            "label": "通州区"
          },
          {
            "value": "110113",
            "label": "顺义区"
          },
          {
            "value": "110114",
            "label": "昌平区"
          },
          {
            "value": "110115",
            "label": "大兴区"
          },
          {
            "value": "110116",
            "label": "怀柔区"
          },
          {
            "value": "110117",
            "label": "平谷区"
          },
          {
            "value": "110118",
            "label": "密云区"
          },
          {
            "value": "110119",
            "label": "延庆区"
          }
        ]
      }

uses
   System.JSON.Readers,  System.JSON.Types, System.JSON;
procedure TFramMenu.UniButton1Click(Sender: TObject);

var
  JSONObject: TJSONObject; // JSON类
  i: Integer; // 循环变量
  temp: string; // 临时使用变量
  jsonArray: TJSONArray; // JSON数组变量
begin
  //Memo1.Text := jsonString;
  if Trim(Memo1.Text) = '' then
    ShowMessage('要解析数据不能为空!')
  else
  begin
    JSONObject := nil;
    try
      { 从字符串生成JSON }
      JSONObject := TJSONObject.ParseJSONValue(Trim(Memo1.Text)) as TJSONObject;
      if JSONObject.Count > 0 then
      begin
        { 1,遍历JSON数据 }
        Memo2.Lines.Add('遍历JSON数据:' + #13#10);
        Memo2.Lines.Add('JSON数据数量:' + IntToStr(JSONObject.Count));
        for i := 0 to JSONObject.Count - 1 do
        begin
          if i = 0 then
            temp := JSONObject.Get(i).ToString + #13#10
          else
            temp := temp + JSONObject.Get(i).ToString + #13#10;
        end;
        { output the JSON to console as String }
        Memo2.Lines.Add(temp);
        Memo2.Lines.Add('------------------------------');
        { 2,按元素解析JSON数据 }
        Memo2.Lines.Add('按元素解析JSON数据:' + #13#10);
        temp := 'value = ' + JSONObject.Values['value'].ToString + #13#10;
        Memo2.Lines.Add(temp);
        // json数组
        jsonArray := TJSONArray(JSONObject.GetValue('children'));
        ;
        if jsonArray.Count > 0 then
        begin
          // 得到JSON数组字符串
          temp := 'children = ' + JSONObject.GetValue('children').ToString + #13#10;
          // 循环取得JSON数组中每个元素

          for i := 0 to jsonArray.Size - 1 do
          begin
            temp := temp + IntToStr(i + 1) + ' : ' +  jsonArray.Items[i].FindValue('label').ToString + #13#10;
          end;
        end;
        Memo2.Lines.Add(temp);
      end
      else
      begin
        temp := '没有数据!';
        Memo2.Lines.Add(temp);
      end;
    finally
      JSONObject.Free;
    end;
  end;
end;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值