我对 Delphi 真的很陌生,我正在做一个关于如何通过 delphi 输出 JSON 数组的实验。这对任何人来说都可能听起来很简单,但我就是不知道怎么做。我已经创建了一个简单的程序。
现在,我想做的是创建一个带有参数的命令/请求,例如:
http://localhost:8001/hello?json={"names":["Jay","Chris","John"]}
这将在浏览器中创建这样的结果:
{
result: ["Hello Jay","Hello Chris","Hello John"],
id: "",
time_elapsed: 0
}
拜托,我真的需要帮助。有人吗?
编辑: 这是我今天刚刚做的代码,但它仍然没有显示我想要的输出:
procedure TPrimeJSONMHelloPeople.ProcessJSONRPCRequest(
var ResultValue: TlkJSONbase; var ResultSuccess: Boolean);
var
jsonPeople:TlkJSONlist;
dmPool:TObject;
dm:TPrimeDataModuleBaseDM;
i:integer;
begin
FjsonObj1 := TlkJSONobject.Create;
jsonPeople := FjsonObj1.CreateListValue('names');
jsonPeople.AddVarString('jay');
jsonPeople.AddVarString('ann');
jsonPeople.AddVarString('john');
inherited;
CheckRequiredParameter('names');
PrimeDataModuleWebService.TDataModuleDMCreateInstanceDefault(dmPool);
try
dm := TPrimeDataModuleDefaultDM(dmPool).GetModule;
try
//this part here will loop and output the name
//if jsonPeople <> nil then
if Params.Field['names'] <> nil then
begin
for i := 0 to FjsonObj1.Field['names'].Count - 1 do
begin
ResultValue := TlkJSONlist.Create
end;
end;
ResultValue := TlkJSONlist.Create;
finally
dm.Release;
end;
finally
dmPool.Free;
end;
FjsonObj1.Free;
ResultSuccess := True;
end;
我不知道代码中缺少什么,它只显示:{
result: [ ],
id: "",
time_elapsed: 0
}
并不是 :
{
result: ["Hello Jay","Hello Chris","Hello John"],
id: "",
time_elapsed: 0
}