Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在JSON中存储记录数组_Json_Delphi_Delphi Xe3_Superobject - Fatal编程技术网

在JSON中存储记录数组

在JSON中存储记录数组,json,delphi,delphi-xe3,superobject,Json,Delphi,Delphi Xe3,Superobject,如何通过SuperObject库将记录数组存储在JSON中。例如 type TData = record str: string; int: Integer; bool: Boolean; flt: Double; end; var DataArray: Array[0..100] of TData; 先把它做成一根绳子 Your array: //Array[0] := 'Apple'; //Array[1] := 'Orange'; //Array

如何通过SuperObject库将记录数组存储在JSON中。例如

type
  TData = record
    str: string;
    int: Integer;
    bool: Boolean;
    flt: Double;
  end;

var
DataArray: Array[0..100] of TData;

先把它做成一根绳子

Your array:
//Array[0] := 'Apple';
//Array[1] := 'Orange';
//Array[2] := 'Banana';
myArrayAsStr := '"MyArray": [{ "1": "' + Array[0] +'", "2": "' + Array[1] +'"}';
然后您可以使用
SO(myArrayAsStr)
您总是可以在不同的过程中以字符串的形式生成数组,但我认为这就是方法

我会继续检查是否有更简单的方法;)

编辑: SuperObject还具有以下功能:
函数SA(const Args:const数组):ISuperObject;超载

您将能够再次将其转换为字符串,并将其添加到整个JSON字符串中。

只需使用superobject编组
TsuPerrtitContext

程序项目1;
{$APPTYPE控制台}
{$R*.res}
使用
超对象,
System.SysUtils;
类型
TData=记录
str:字符串;
int:整数;
布尔:布尔;
外语:双;
结束;
TDataArray=TData的数组[0..100];
程序测试;
变量
DataArray:TDataArray;
所以:ISuperObject;
ctx:Tsuperrti上下文;
开始
ctx:=tsupertitcontext.Create;
尝试
so:=ctx.AsJson(DataArray);
最后
免费;
结束;
Writeln(so.AsJson);
结束;
开始
尝试
试验;
除了
关于E:Exception-do
Writeln(E.ClassName,“:”,E.Message);
结束;
ReadLn;
结束。

SuperObject帮助文件有一个确切的例子(可能与RTTI的代码不同,但概念相同)@Jerrydoge可能是因为这是一种方法?如果这个案例有文档记录,为什么会有所不同?我没有说应该有所不同,我只是说,因为OP可以简单地阅读SuperObject的帮助文件,而不是在这里询问。这里已经解释了完全相同的解决方案。@Jerrydoge+1很抱歉误解了您的评论,但这符合一些问题;o) 需要注意的是:结果
“MyArray”:[{“1”:“Apple”,“2”:“Orange”}
不是有效的JSON字符串。它应该是
{“MyArray”:[{“1”:“Apple”,“2”:“Orange”}
甚至
[{“1”:“Apple”,“2”:“Orange”}]