Delphi Json

superobject.pas单元对json的解析非常方便, 力荐

下面演示对如下json的解析

{ "userid": "u0001", "info": [ { "url": "rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent", "lng": 105.97505, "lat": 34.271555, "id": "0001", "memo": "S.H.E 001" },{ "url": "rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent", "lng": 114.658574, "lat": 32.106045, "id": "0002", "memo": "S.H.E 002" },{ "url": "rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent", "lng": 112.818844, "lat": 26.563882, "id": "0003", "memo": "S.H.E 003" },{ "url": "rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent", "lng": 104.687239, "lat": 29.534077, "id": "0004", "memo": "S.H.E 004" }], "area": "sz01" }

 

procedure TForm1.btn1Click(Sender: TObject);
var
  s:String;
  i: Integer;
  jfields,jitems,jo:ISuperObject;
begin
  jitems:=SA([]);
  jo:=SO();
  jo.S['area'] := 'sz01';
  jo.S['userid'] := 'u0001';
  for i := 0 to 3 do
  begin
    jfields:=SO();
    jfields.S['id']:= Format('%.4d', [i+1]);
    jfields.D['lng']:= 102.0909;
    jfields.D['lat']:= 33.9888;
    jfields.S['url']:='rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent';
    jfields.S['memo']:='S.H.E 00'+ IntToStr(i+1);
    jitems.AsArray.Add(jfields);
  end;
  jo.O['info']:=jitems;

  s := jo.AsJSon(True, False);
  mmo1.Text := s;
end;

procedure TForm1.btn2Click(Sender: TObject);
var
  jo,m:ISuperobject;
  i,j:Integer;
  tt:TSuperArray;
  s:string;
  lst:TStringList;
begin
  if mmo1.Text <>'' then
  begin
    lst:=TStringList.Create;
    jo:=so(mmo1.Text);
    tt:=jo.O['info'].AsArray;
    for i:=0 to tt.Length-1 do
    begin
      s:=tt.O[i].S['id'];
      lst.Add(s);
    end;
    ShowMessage(lst.Text) ;
    lst.Free;
  end;
end;

点此下载该单元文件  

转载于:https://www.cnblogs.com/doorsky/p/4514781.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi 中,您可以使用 TJSONObject 和 TJSONArray 类来处理 JSON 数据。这两个类是 Delphi 提供的用于操作和构建 JSON 数据的核心类。以下是一些示例代码,演示了如何在 Delphi 中使用 TJSONObject 和 TJSONArray: ```delphi var JSONObject: TJSONObject; JSONArray: TJSONArray; JSONValue: TJSONValue; begin // 创建一个空的 JSON 对象 JSONObject := TJSONObject.Create; // 添加属性和值到 JSON 对象 JSONObject.AddPair('name', 'John'); JSONObject.AddPair('age', TJSONNumber.Create(30)); JSONObject.AddPair('isMarried', TJSONBool.Create(True)); // 获取属性的值 ShowMessage(JSONObject.GetValue('name').Value); ShowMessage(IntToStr((JSONObject.GetValue('age') as TJSONNumber).AsInt)); ShowMessage(BoolToStr((JSONObject.GetValue('isMarried') as TJSONBool).AsBoolean, True)); // 创建一个 JSON 数组 JSONArray := TJSONArray.Create; // 向数组中添加元素 JSONArray.Add('Apple'); JSONArray.Add('Banana'); JSONArray.Add('Orange'); // 将数组添加到 JSON 对象中 JSONObject.AddPair('fruits', JSONArray); // 获取数组中的元素 JSONValue := JSONArray.Items[0]; ShowMessage(JSONValue.Value); // 清空 JSON 对象和 JSON 数组 JSONObject.Clear; JSONArray.Clear; JSONObject.Free; JSONArray.Free; end; ``` 在上面的示例中,我们首先创建了一个空的 TJSONObject 对象,并使用 AddPair 方法将属性和对应的值添加到 JSON 对象中。我们使用字符串、TJSONNumber 和 TJSONBool 来分别表示属性的值。 要访问 JSON 对象的属性和值,我们可以使用 GetValue 方法获取属性对应的 TJSONValue,并使用 as 运算符将其转换为相应的类型。然后,我们可以使用 Value 或其他属性获取 JSON 值的实际值。 此外,在示例中,我们还创建了一个 TJSONArray 对象,并使用 Add 方法向数组中添加了三个字符串元素。然后,我们将该 JSON 数组作为属性添加到 JSON 对象中。 请注意,在使用完 JSONObject 和 JSONArray 对象后,记得释放它们的内存。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值