delphi XE3解析JSON数据
测试数据如下:
Memo1.text中的数据:
{
"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℃"
}
Memo2.text中的数据:
{
"success":"true",
"appId":"9",
"data":[
{
"itemId":"536273259873","title":"\u52A0\u7ED2\u52A0\u539A\u54FA\u4E73\u5916\u51FA\u536B\u8863"
},
{
"itemId":"539867455759","title":"\u5C0F\u7EA2\u978B\u60C5\u4FA3\u8FD0\u52A8\u4F11\u95F2\u978B\u68C9\u978B"
}
]
}
..............
uses DBXJSON, DBXJSONCommon, DBXJSONReflect;
...............
procedure TForm1.Button1Click(Sender: TObject);
var
JO: TJSONObject;
StrJson: String;
LJPair: TJSONPair;
begin
StrJson := Memo1.Text;
JO := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(StrJson),
0) as TJSONObject;
ShowMessage(JO.Get('date').JsonValue.Value);
ShowMessage(JO.Get(3).JsonValue.Value);
for LJPair in JO do
begin //遍历 {..} 中的数据
ShowMessage(LJPair.JsonValue.Value);
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
JO,Jo2: TJSONObject;
StrJson: String;
LJPair: TJSONPair;
elementCount: Integer;
i: Integer;
JA: TJSONArray;
begin
elementCount:=0;
StrJson := Memo2.Text;
JO := TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(StrJson),
0) as TJSONObject;
ShowMessage((JO.Get('success').JsonValue as TJSONTrue).ToString);
ShowMessage(JO.Get(1).JsonValue.Value);
for LJPair in JO do
begin //遍历 {..} 中的数据
// ShowMessage(LJPair.JsonValue.Value);
if LJPair.JsonValue is TJSONArray then
begin
JA:=LJPair.JsonValue as TJSONArray;
elementCount:= JA.Size;
showmessage(inttostr(elementCount));
for i := 0 to elementCount-1 do
begin
Jo2:= JA.Get(i) as TJSONObject;
if Jo2 is TJSONObject then
begin
ShowMessage(Jo2.Get('itemId').JsonValue.Value);
ShowMessage(Jo2.Get('title').JsonValue.Value);
end;
end;
end;
end;
end;
delphi XE3解析JSON数据的更多相关文章
- Delphi中使用ISuperObject解析Json数据
Java.Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即Isuper ...
- 使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
- 使用jQuery解析JSON数据
我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. 上例中得到的JSON数据如下,是一个嵌套JSON: {"comments&quo ...
- [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")
javascript eval函数解析json数据时为什么 加上圆括号?为什么要 eval这里要添加 “("("+data+")");//”呢? 原因在于: ...
- 用jquery解析JSON数据的方法以及字符串转换成json的3种方法
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...
- Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
- fastjson生成和解析json数据,序列化和反序列化数据
本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<M ...
- 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中
摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...
- JSONKit解析json数据
先将第三方文件拖进工程 JSONKit.h和JSONKit.m 然后设置在ARC工程中添加MRC文件,如下图所示 #import "ViewController.h" #impor ...
随机推荐
- golang sizeof 占用空间大小
C语言中,可以使用sizeof()计算变量或类型占用的内存大小.在Go语言中,也提供了类似的功能, 不过只能查看变量占用空间大小.具体使用举例如下. package main import ( &qu ...
- 理解REST和SOA
REST -- REpresentational State Transfer 直接翻译:表现层状态转移. 精辟理解:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作 ...
- Python中的偏函数
偏函数是从Python2.5引入的一个概念,通过functools模块被用户调用. 偏函数是将所要承载的函数作为partial()函数的第一个参数,原函数的各个参数依次作为partial()函数后续的 ...
- 【Oracle学习笔记-2】Oracle基础术语解析
来自为知笔记(Wiz) 附件列表 Oracle概念解析.png 表空间.png 大小关系.png 段segment.png 块block.png 区entent.png 数据库基本概念.png
- 退出循环break,在while、for、do...while、循环中使用break语句退出当前循环,直接执行后面的代码。
在while.for.do...while循环中使用break语句退出当前循环,直接执行后面的代码. 格式如下: for(初始条件;判断条件;循环后条件值更新) { if(特殊情况) {break;} ...
- Shell的for和select
环境准备: [root@nodchen-db01-test day07]# mkdir -p /server/scripts/day07/test/{test.txt,oldboy.txt,oldgi ...
- Northwestern European Regional Contest 2017-I题- Installing Apps题解
一.题意 有一个手机,容量为$C$,网上有$N$个app,每个app有个安装包大小$d_i$,有个安装后的占用空间大小$s_i$,安装app是瞬间完成的,即app的占用空间可以瞬间由$d_i$变成$s ...
- Scrapy框架——CrawlSpider爬取某招聘信息网站
CrawlSpider Scrapy框架中分两类爬虫,Spider类和CrawlSpider类. 它是Spider的派生类,Spider类的设计原则是只爬取start_url列表中的网页, 而Craw ...
- 浅析PHP7新功能及语法变化总结
标量类型声明 有两种模式: 强制 (默认) 和 严格模式. 现在可以使用下列类型参数(无论用强制模式还是严格模式): 字符串(string), 整数 (int), 浮点数 (float), 以及布尔值 ...
- 文件读写’r'和’rb’区别
2012年08月22日 ⁄ 综合 ⁄ 共 849字 ⁄ 字号 小 中 大 ⁄ 评论关闭不管何种语言在进行文件读写时,大家都知道有以下模式: r,rb,w,wb 那么在读写文件时,有无b标识的的主要区别 ...