Delphi使用SuperObject和使用SuperArray创建JSon

Delphi中JSon数据拼写

首先需要下载SuperObject库并将其添加到Delphi项目中。测试json格式可以百度搜索json在线解析工具去校验格式是否正确。

1、使用SuperObject创建JSON对象

  1. 在代码中引入SuperObject单元:uses SuperObject;
  2. 声明一个SuperObject的变量:var obj: ISuperObject;
  3. 使用Create函数创建一个新的SuperObject对象:obj := SO;
  4. 添加属性和值到对象中:obj.S['name'] := 'John';
  5. 将SuperObject对象转换为JSON字符串:var jsonStr: string; jsonStr := obj.AsJSON;

2、使用SuperArray创建JSON数组

  1. 在代码中引入SuperObject和SuperArray单元:uses SuperObject, SuperArray;
  2. 声明一个SuperArray的变量:var arr: ISuperArray;
  3. 使用Create函数创建一个新的SuperArray对象:arr := SA;
  4. 向数组中添加元素:arr.Add(1);
  5. 将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":"一班"}}}