接口数据有如下规范{"error": 0, "msg": "", "data": ...}

其中数据data类型不确定。发生错误时,返回错误代码error与提示msg,反之error为0,msg为""。

function GetResultData(const AStr: string; var AData: string): Boolean;
var
vJ: ISuperObject;
begin
vJ := SO(AStr);
Result := vJ.I['error'] = ;
if Result then
AData := vJ['data'].AsString
else
AData := Format('错误代码[%d]: %s', [vJ.I['error'], vJ.S['msg']]);
end;

1. 解析Json数据为{"error": 0, "msg": "", "data": {"name":"张三","age": 17}}

procedure GetPersonInfo(const AStr: string);
var
sInfo: string;
vPerson: ISuperObject;
begin
if GetResultData(AStr, sInfo) then
begin
vPerson := SO(sInfo);
ShowMessage(Format('姓名:%s,年龄:%d', [vPerson.S['name'], vPerson.I['age']]));
end
else
MessageBox(, PChar(sInfo), PChar('警告'), MB_OK or MB_ICONWARNING);
end;

2. 解析Json数据为{"error": 0, "msg": "", "data": [{"name":"张三","age": 17},{"name":"李四","age":20}]}

procedure GetPersonsInfo(const AStr: string);
var
sInfo: string;
vPersons, vPerson: ISuperObject;
i: Integer;
sgs: TStrings;
begin
if GetResultData(AStr, sInfo) then
begin
vPersons := SO(sInfo);
sgs := TStringList.Create;
for i := to vPerson.AsArray.length - do
begin
vPerson := vPerson.AsArray.O[i];
sgs.Add(Format('姓名:%s,年龄:%d', [vPerson.S['name'], vPerson.I['age']]));
end;
ShowMessage(sgs.Text);
sgs.Free;
end
else
MessageBox(, PChar(sInfo), PChar('警告'), MB_OK or MB_ICONWARING);
end;

使用superobject 解析Json数据的更多相关文章

  1. Delphi中使用ISuperObject解析Json数据

    Java.Php等语言中都有成熟的框架来解析Json数据,可以让我们使用很少的代码就把格式化好的json数据转换成程序可识别的对象或者属性,同时delphi中也有这样的组件来实现此功能,即Isuper ...

  2. 使用Python解析JSON数据的基本方法

    这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下:     ----------------------------------- ...

  3. 使用jQuery解析JSON数据

    我们先以解析上例中的comments对象的JSON数据为例,然后再小结jQuery中解析JSON数据的方法. 上例中得到的JSON数据如下,是一个嵌套JSON: {"comments&quo ...

  4. [转]javascript eval函数解析json数据时为什加上圆括号eval("("+data+")")

    javascript eval函数解析json数据时为什么 加上圆括号?为什么要 eval这里要添加 “("("+data+")");//”呢?   原因在于: ...

  5. 用jquery解析JSON数据的方法以及字符串转换成json的3种方法

    用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是 json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject ...

  6. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  7. fastjson生成和解析json数据,序列化和反序列化数据

    本文讲解2点: 1. fastjson生成和解析json数据 (举例:4种常用类型:JavaBean,List<JavaBean>,List<String>,List<M ...

  8. 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来的Json数据写入数据库表中

    摘自:http://blog.csdn.net/mazhaojuan/article/details/8592015 通过js获取前台数据向一般处理程序传递Json数据,并解析Json数据,将前台传来 ...

  9. JSONKit解析json数据

    先将第三方文件拖进工程 JSONKit.h和JSONKit.m 然后设置在ARC工程中添加MRC文件,如下图所示 #import "ViewController.h" #impor ...

随机推荐

  1. 调整图像的尺寸 - cvResize() 函数实现

    前言 有时会碰到一张图片太大了,想将它缩小.本文将讲解一个很好用的函数解决这个问题. 图像尺寸调整函数 cvResize() // 图像尺寸调整函数 void Resize ( const CvArr ...

  2. load-on-startup 解释

    <!DOCTYPE web-app PUBLIC  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  &qu ...

  3. C#之stream

    在C#中经常要用stream stream下面主要有 FileStream:使用文件作为后备设备. BufferedStream:使用缓冲区作为后备设备,用来增强性能的中间存储. MemoryStre ...

  4. 五个知识体系之-SQL学习-第一天

    1. 创建数据库 CREATE DATABASE test1; 2. 删除数据库 DROP DATABASE test1; 3. 创建表 CREATE TABLE tabname (userid BI ...

  5. Mybatis之Mapper动态代理

    一.什么是Mapper的动态代理 采用Mapper动态代理方法只需要编写相应的Mapper接口(相当于Dao接口),那么Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接 ...

  6. 转义字符\r \n \t \b 截图

  7. 九度OJ 1151:位操作练习 (位操作)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:1679 解决:924 题目描述: 给出两个不大于65535的非负整数,判断其中一个的16位二进制表示形式,是否能由另一个的16位二进制表示形 ...

  8. STM32 Flash Download failed

    笔者使用Keil开发环境对STM32L Discovery进行开发,更新一次firmware后就不能连接目标板了,报错Internal command error Flash download fai ...

  9. <算法导论>高级数据结构--以我的角度看B树(Balanced-Tree)的建增删查

    题外话:在博客园看了几篇关于B树的博文确实很有帮助,但是也看到有一些Funny的博文- -比如拿二叉树堂(BinaryTree)而皇之写上B树的帽子. 好了题归正传,B树(Balanced-Tree) ...

  10. matlab的代码注释

    1.注释一块代码: %{ 此处代码块 %} 2.注释数行代码: 先选中,然后用组合键Ctrl+R 取消注释,用组合键Ctrl+T 3.双%%的作用:代码分块运行,点击双%%之间的代码,再点Run Se ...