私は 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
}