Delphi - 如何从字符串数组创建TJSONArray?

时间:2016-05-02 17:50:20

标签: arrays json delphi

我有以下array of strings

  

001002005009

我需要从中创建一个TJSONArray

  

[" 001"" 002"" 005"" 009"]

 JSONObj := TJSONObject.Create;
 JSONObj.AddPair(TJSONPair.Create('Events', (response_faults as TJSONArray)));

我尝试创建对象并将字符串数组传递为 a TJSONArray,但我得到了:

  

E2015运算符不适用于此操作数类型

如何从TJSONArray生成array of strings

1 个答案:

答案 0 :(得分:2)

首先需要构造一个空的TJSONArray对象,然后Add()构造单个字符串值。例如:

var
  arr: array of string;
  JSONObj: TJSONObject;
  response_faults: TJSONArray;
  I: Integer;
begin
  arr := ... ; // '001', '002', '005', '009', ...
  JSONObj := TJSONObject.Create;
  try
    response_faults := TJSONArray.Create;
    try
      for I := Low(arr) to High(arr) do begin
        response_faults.Add(arr[I]);
      end;
      JSONObj.AddPair('Events', response_faults);
    except
      response_faults.Free;
      raise;
    end;
    // use JSONObj as needed...
  finally
    JSONObj.Free;
  end;
end;