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": "", "memo": "S.H.E 001" },{ "url": "rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent", "lng": 114.658574, "lat": 32.106045, "id": "", "memo": "S.H.E 002" },{ "url": "rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent", "lng": 112.818844, "lat": 26.563882, "id": "", "memo": "S.H.E 003" },{ "url": "rtmp://192.168.3.159/livepkgr/66?adbe-live-event=liveevent", "lng": 104.687239, "lat": 29.534077, "id": "", "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;

点此下载该单元文件  

Delphi Json的更多相关文章

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

    在delphi中,数据集是最常用数据存取方式.因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换.值得注意的是,这只是普通的TDataset与JSON之间转换,由于CDS包 ...

  2. Delphi json解析相关

    身为一个资深的Delphi 开发者, 最近在做一个小工具的时候,开始捡起来pascal语言. 主要是开发一个内部用的小工具, 主要功能: 1.解析json格式 2.格式化json文件 3.校验json ...

  3. delphi json用法

    用法:uses Superobject, Sperjsondelphi里有json单元. procedure TForm2.SuperObjectClick(Sender: TObject); var ...

  4. delphi json uLkJSON

    delphi 7 json 做个笔记,留着以后用 --源码 unit Umain; interface uses Windows, Messages, SysUtils, Variants, Clas ...

  5. Delphi Json之树遍历

    procedure TForm1.VisitDirJsonTree(const AJsonObj: ISuperObject); var i: Integer; oItem: TSuperAvlEnt ...

  6. delphi c++builder JSON 生成与解析 例子

    json,System.JSON,REST.JSON JSON有两种数据结构,对象和数组. 对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,...} 数组 ...

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

    <span style="font-size:14px;">一直想找如何解析JSON数据的说,今天终于找到有人发帖子了.之前有人说用superobject,Tlkjso ...

  8. Delphi XE6 原生解析json

    Delphi XE5带了system.json单元,原生提供了json支持类.下面是解析json用法说明: 最简单的JSON大致像这样 { "date":"周二(今天, ...

  9. 转(Delphi 新窑洞):使用delphi 开发多层应用(十七)使用RTC web 服务器返回JSON

    RTC作为delphi 的最专业的web 应用服务器,如果客户端要使用JSON 的话,那么使用RTC 应该也是一种 非常好的选择.下面我们做一个使用RTC web 服务器返回数据库JSON 的例子. ...

随机推荐

  1. 推荐Python Web开发测试驱动方法

    http://www.cnblogs.com/dkblog/archive/2013/06/14/3135914.html推荐 本人买的时候,京东打8.5折,现在降价啦,本书涵盖啦Django.Sel ...

  2. Servlet和Struts2同时使用

    在做WEB项目时,要么是Struts+Spring+Hibernate,要是就直接使用servlet.这次碰到一个项目,经理想要把之前一个用servlet做的部分模块移植到当前项目下(Struts+S ...

  3. android studio的Beta, Canary, Dev, Stable四种Channel版本介绍、分析与选择

    一.概述 在Android Studio下载官网上,有如下介绍: ` Android Studio's built-in update mechanism can be set to receive ...

  4. MongoDB 3.X 用户权限控制

    摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法. 环境.测试: 在安装MongoDB之后,先关闭auth认证,进 ...

  5. CI框架入门2

    文件目录与布局 1.user_guide    用户手册,可删 2.readme.rst    说明,可删 3.license.txt     证书,可删 4..gitignore composer. ...

  6. c# winform编程之多线程ui界面资源修改总结篇

    单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么 ...

  7. 多边形裁剪的Sutherland-Hodgman算法

    多边形裁剪是渲染管线中重要的一个子阶段,它将视截体外的多边形去除.一种简单的裁剪策略是一旦发现一个顶点在裁剪区域以外,就立刻丢弃该多边形.更加精细的做法则是,将原来的多边形拆为多个不跨越边界的多边形, ...

  8. 加速下载gradle

    http://www.jianshu.com/p/e887203e30f6 另外idea runconfiguration里边 gradle project要选项目根目录,而不是build脚本.

  9. mockito使用心得

    前提:pom引用<dependency> <groupId>junit</groupId> <artifactId>junit</artifact ...

  10. 创建两个对象的两种方法,一中\new,另外一种不new

    方法一:   String s1=new String("hello"); String s2=new String("hello");     这里是new了 ...