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

{
  "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;

效果截图:

posted @ 2022-10-04 00:13  IT情深  阅读(202)  评论(0编辑  收藏  举报