Delphi中JSon数据拼写
首先需要下载SuperObject
库并将其添加到Delphi项目中。测试json格式可以百度搜索json在线解析工具去校验格式是否正确。
1、使用SuperObject创建JSON对象
- 在代码中引入SuperObject单元:
uses SuperObject;
- 声明一个SuperObject的变量:
var obj: ISuperObject;
- 使用Create函数创建一个新的SuperObject对象:
obj := SO;
- 添加属性和值到对象中:
obj.S['name'] := 'John';
- 将SuperObject对象转换为JSON字符串:
var jsonStr: string; jsonStr := obj.AsJSON;
2、使用SuperArray创建JSON数组
- 在代码中引入SuperObject和SuperArray单元:
uses SuperObject, SuperArray;
- 声明一个SuperArray的变量:
var arr: ISuperArray;
- 使用Create函数创建一个新的SuperArray对象:
arr := SA;
- 向数组中添加元素:
arr.Add(1);
- 将SuperArray对象转换为JSON字符串:
var jsonStr: string; jsonStr := arr.AsJSON;
3、多层json使用案例
json数据如下图:
代码实现:
var
jo,jt,item :ISuperObject;
ja :TSuperArray;
Arr : array of array of string;
I : Integer;
begin
setlength(Arr,2,2);
Arr[0,0] := '1';
Arr[0,1] := '数学';
Arr[1,0] := '2';
Arr[1,1] := '语文';
jo := SO();
//root部分
jo.O['ROOT'] := SO();
jo.O['ROOT'].O['HEADER'] :=SO();
jo.O['ROOT'].O['HEADER'].S['CALSS'] := '一班';
//body部分
jo.O['BODY'] := SO();
jo.O['BODY'].I['ID']:= 1;
jo.O['BODY'].O['LIST'] := SO('[]'); // 节点集合
ja := jo.O['BODY'].A['LIST'];
item := SO();
item.S['STU_NUMBER'] := '1234';
item.S['STU_NAME'] := '张三';
item.I['STU_AGE'] := 15;
item.O['BOOKLIST'] := SO('[]');
jaBookList := item.A['BOOKLIST']; //Arr := array[('1','数学'),('2','语文')] of string;
for I := Low(Arr) to High(Arr) do
begin
itemBookList := SO();
itemBookList.S['SUBJECT_NO'] := Arr[I][0];
itemBookList.S['SUBJECT_NAME'] := Arr[I][1];
jaBookList.Add(itemBookList);
end;
ja.Add(item);
end.
输出结果
{"BODY":{"ID":1,"LIST":[{"BOOKLIST":[{"SUBJECT_NAME":"数学","SUBJECT_NO":"1"},{"SUBJECT_NAME":"语文","SUBJECT_NO":"2"}],"STU_AGE":15,"STU_NAME":"张三","STU_NUMBER":"1234"}]},"ROOT":{"HEADER":{"CALSS":"一班"}}}