新版Delphi10.3.2自带JSON类构建JSON及根据JsonPath高效解析JSON示例代码

这篇博客展示了如何利用新版Delphi10.3.2内置的JSON类来构建JSON对象,并结合JsonPath进行高效解析。通过示例代码,读者可以了解到具体的操作步骤和方法。
{
  "error":0,
  "status":"success",
  "date":"2014-03-04",
  "results":
  [
        {
      "currentCity":"成都",
      "weather_data":
      [
                {
          "date":"周二(今天, 实时:12℃)",
          "dayPictureUrl":"http://api.map.baidu.com/images/weather/day/duoyun.png",
          "nightPictureUrl":"http://api.map.baidu.com/images/weather/night/duoyun.png",
          "weather":"多云",
          "wind":"北风微风",
          "temperature":"15 ~ 6℃"
        }
,
        
        {
          "date":"周三",
          "dayPictureUrl":"http://api.map.baidu.com/images/weather/day/yin.png",
          "nightPictureUrl":"http://api.map.baidu.com/images/weather/night/xiaoyu.png",
          "weather":"阴转小雨",
          "wind":"北风微风",
          "temperature":"14 ~ 7℃"
        }
,
        
        {
          "date":"周四",
          "dayPictureUrl":"http://api.map.baidu.com/images/weather/day/xiaoyu.png",
          "nightPictureUrl":"http://api.map.baidu.com/images/weather/night/xiaoyu.png",
          "weather":"小雨",
          "wind":"北风微风",
          "temperature":"12 ~ 7℃"
        }
,
        
        {
          "date":"周五",
          "dayPictureUrl":"http://api.map.baidu.com/images/weather/day/xiaoyu.png",
          "nightPictureUrl":"http://api.map.baidu.com/images/weather/night/xiaoyu.png",
          "weather":"小雨",
          "wind":"南风微风",
          "temperature":"9 ~ 6℃"
        }
      ]
    }
  ]
}
//构建JSON
procedure TForm1.Button1Click(Sender: TObject);
var
  json:TJSONObject;
  person:TJSONObject;
begin
  json:= TJSONObject.Create;
  json.AddPair('code','0');
  json.AddPair('msg','success');
  person:= TJSONObject.Create;
  person.AddPair('id','1001');
  person.AddPair('name','张三');
  person.AddPair('sex','男');
  person.AddPair('age','30');
  person.AddPair('address','广东省广州市XXXX街XXX路XX号');
  json.AddPair('data',person);
  Memo1.Text:=json.ToString;
end;

//解析JSON
procedure TForm1.Button2Click(Sender: TObject);
var
  json:TJSONObject;
begin
  json:=TJSONObject.ParseJSONValue(Memo2.Text)as TJSONObject;
  edit1.Text:=json.p['results[0].weather_data[1].temperature'].ToString;
  edit2.Text:=json.GetValue<string>('results[0].weather_data[2].nightPictureUrl');
end;

效果截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值