【发布时间】:2011-06-21 02:16:17
【问题描述】:
我对 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
}
【问题讨论】:
-
代码中没有出现“Hello”的地方。
ResultValue := TlkJSONlist.Create;被执行 N 次,然后被覆盖。 -
好的,谢谢。我已经有代码了。让我分享给大家。 :)
标签: json delphi arraylist delphi-2005