|
|
| |
|
使用lkjson处理Json数据 | |
| 阅读 77 次 更新时间:2025/2/28 | |
使用lkjson处理Json数据1,载入var Jso: TlkJSONbase; begin Jso:=TlkJSON.ParseText(Memo1.Text); 从字符串中载入Json,并返回一个TlkJSONbase对象,当然使用完毕后记得释放掉它。
2,节点处理TlkJSONbase是所有Json总类的父类,通过它的SelfType方法可以获取节点的类型,然后根据类型把它转化成相应的类去操作。 例如 (Json as TlkJSONObject) 下面列出全部的类型与操作说明:
jsBase 值对类型。相关类:TlkJSONobjectmethod。 (Json as TlkJSONobjectmethod).Name: 节点的名称 (Json as TlkJSONobjectmethod).ObjValue: 节点的值,注意ObjValue的类型还是TlkJSONbase依然需要用SelfType来判断具体类型。
jsList, 数组类型。相关类:TlkJSONlist (Json as TlkJSONlist).Count:获取数组的长度。 (Json as TlkJSONlist).IndexOf(n): 获取数组的第N个元素,返回值依然是TlkJSONbase。
jsObject 对象类型。相关类:TlkJSONObject。 (Json as TlkJSONObject).Name: 获取属性的长度 (Json as TlkJSONObject).IndexOfName('N'): 获取名为N的属性的值,返回值依然是TlkJSONbase。
jsNumber, 整数或浮点数,可以用Value来直接获取,不用转化类了。
jsString, 字符串。同上。
jsBoolean, 布尔值,同上。
jsNull, 空值,同上。
3,介于以上理解为了加深印象我写了一个简单的json格式化函数。
在Delphi 7中,由于官方并未原生支持JSON的编码和解码,通常需要使用第三方库来实现。以下是几种常见的方法: 1. 使用SuperObjectSuperObject是一个轻量级的JSON解析和生成库,广泛用于Delphi 7中。以下是一个简单的示例,展示如何使用SuperObject进行JSON的编码和解码: delphi
uses
superobject;
var
j, a: ISuperObject;
begin
// 创建一个JSON对象
j := TSuperObject.Create(stObject);
j.I['数字'] := 123; // 添加一个整数类型的键值对
j.S['字符串'] := '值'; // 添加一个字符串类型的键值对
// 创建一个JSON数组
a := TSuperObject.Create(stArray);
a.I[''] := 111; // 添加一个数组元素
a.I[2] := 's'; // 添加第三个数组元素
// 将数组添加到JSON对象中
j['arr'] := a;
// 输出JSON字符串
ShowMessage(j.AsJSon);
// 解析JSON字符串
j := SO('{"数字":123,"字符串":"值","arr":[111,null,"s"]}');
ShowMessage(j.S['字符串']); // 输出: 值
end;
2. 使用lkJSONlkJSON是另一个常用的JSON库,支持快速解析和生成JSON数据。以下是一个简单的示例: delphi
uses
lkJSON;
var
Json, childJson: TlkJSONobject;
ResponseJson: string;
begin
ResponseJson := '{"success":"true","msg":"操作成功","data":{"key":"value"}}';
Json := TlkJSON.ParseText(ResponseJson) as TlkJSONobject;
try
ShowMessage(Json.Field['msg'].Value); // 输出: 操作成功
childJson := Json.Field['data'] as TlkJSONobject;
ShowMessage(childJson.Field['key'].Value); // 输出: value
finally
FreeAndNil(Json);
end;
end;
| |
|
|
|