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;

点此下载该单元文件  

时间: 2024-10-28 01:03:13

Delphi Json的相关文章

delphi Json操作

Creating a Simple JSON Object The following code segment demonstrates the creation of a simple JSON object containing one JSON pair. Once this object is created, its ToString method is invoked, assigning the returned string representation of the JSON

delphi json用法

最近接触到json,开始还有点抵触,用多了感觉蛮好玩的,特别是里面什么都可以放,整形I,数组A,对象O,布尔型B等等,而且delphi用起来也很方便,可以直接放文本,当变量,里面的值也可以随时改变,真的太方便了.取值时,也是一层一层的取,若前面都一样可以用with...do...去掉不要的层级.需要注意的是大小写取值时要区分.用法:uses Superobject, Sperjsondelphi里有json单元. procedure TForm2.SuperObjectClick(Sender:

delphi json(CDS包含了Delta数据包)

在delphi中,数据集是最常用数据存取方式.因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换.值得注意的是,这只是普通的TDataset与JSON之间转换,由于CDS包含了Delta数据包,其数据格式远比普通的TDataset更复杂. 数据集字段信息,是一个完整的字典信息.因此,我们在JSON必须也建立字典信息,才能创建数据集的字段信息.我们设置其JSON信息如下: COLS:[字段列表信息],如: "Cols":[{"JsonType&quo

delphi json uLkJSON

delphi 7 json 做个笔记,留着以后用 --源码 unit Umain; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton; mmo1: TMemo; mmo2: TMemo; Button3: T

如何解析DELPHI XE5服务器返回的JSON数据(翻译)及中文乱码

[plain] view plain copy print? <span style="font-size:14px;">一直想找如何解析JSON数据的说,今天终于找到有人发帖子了.之前有人说用superobject,Tlkjson,delphi json library,delphi  web unit等等.其实我是想找比较简单的解析方式.解析简单的json.下面是转载的坦然的源码. </span> [delphi] view plain copy print

xe5 delphi 解析 json

xe5 delphi 解析 json 2014-03-04 17:35:41|  分类: mobile |  标签:delphi  json  mobile  |举报 |字号大中小 订阅 最简单的JSON大致像这样 { "date":"周二(今天, 实时:12℃)", "dayPictureUrl":"http://api.map.baidu.com/images/weather/day/duoyun.png", "

YxdJSON - Delphi 高性能 JSON 库(支持RTTI和序列化操作)

Delphi 高性能 JSON 库(支持RTTI和序列化操作) 支持平台: Windows, Android, iOS, Mac OS https://github.com/yangyxd/YxdJson

转:Delphi语言最好的JSON代码库 mORMot学习笔记1

mORMot没有控件安装,直接添加到lib路径,工程中直接添加syncommons,syndb等到uses里 --------------------------------------------------------- 在进行网络编程中需要JSON对象的构建与解析,这个Delphi XE+自带:{$IF CompilerVersion>22}, System.JSon{$ELSE}, DBXJSON{$IFEND}不过,不好用,大家更喜欢SuperObject.我本人以前一直用JsonDa

Delphi中JSon SuperObject 使用:数据集与JSON对象互转

在delphi中,数据集是最常用数据存取方式.因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换.值得注意的是,这只是普通的TDataset与JSON之间转换,由于CDS包含了Delta数据包,其数据格式远比普通的TDataset更复杂. 数据集字段信息,是一个完整的字典信息.因此,我们在JSON必须也建立字典信息,才能创建数据集的字段信息.我们设置其JSON信息如下: COLS:[字段列表信息],如: "Cols":[{"JsonType&quo