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 ...
随机推荐
- BASIC-1_蓝桥杯_闰年判断
正确代码: #include <stdio.h> int main(void){ int year = 0 ; scanf("%d",&year); if (y ...
- 关于Hibernate Could not obtain transaction-synchronized Session for current thread
转载自 http://blog.csdn.net/flyjiangs/article/details/51537381 最近几年一直再搞android,最近闲下来了,顺便玩一下web. 整了个最新版本 ...
- bzoj3668 起床困难综合症
Description 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争.通过研究相关文献,他找 ...
- javascript中有关this的解析题
1.作用域链 作用域:浏览器给js一个生存环境(栈)内存 作用域链:js中的关键字var function 都可以提前声明和定义,提前声明和定义,放在我们的内存地址(堆)内存中,然后js从上到下逐行执 ...
- 华为P10的内存门和闪存门的检测方法
用android的终端模拟器,进入以后进入界面,输入命令ls /proc/fs/*,可以查看是否ufs还是emmc硬盘:用devcheck可以查看到手机的内存是否是DDR3还是DDR4:用androb ...
- 触屏设备上的多点触碰检测C++代码实现
转自:http://aigo.iteye.com/blog/2272698 代码还是参考自Epic官方的塔防项目:StrategyGame 看了下C++的API,现成的API中貌似只支持单点触碰检测, ...
- Quectel module USB driver for linux
The environment settings are as follows: 1. ubuntu 14.04 , linux kernel: linux-lts-xenial-4.4.0 2. m ...
- decorator的class方式
class式的 Decorator decorator的class方式 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 clas ...
- OpenCV:初试牛刀-显示图像-1
OpenCV开发包提供了读取各种类型的图像文件.视频内容以及摄像机输入的功能.这些功能是OpenCV开发包所包含的HighGUI工具集的一部分. 先看两个小例子: #include"open ...
- 【Codeforces】CF 911 D. Inversion Counting(逆序对+思维)
题目 传送门:QWQ 分析 思维要求比较高. 首先我们要把原图的逆序对q算出来. 这个树状数组或归并排序都ok(树状数组不用离散化好评) 那么翻转$[l,r]$中的数怎么做呢? 暴力过不了,我试过了. ...