【发布时间】:2014-07-07 14:13:01
【问题描述】:
我正在尝试将 Delphi 中的数据列表返回到列表框,但我认为我无法掌握它们如何组合在一起的基本原理。
answer 为我提供了一个使用本地定义数据集的工作示例。
我现在遇到的问题是我的 Delphi 代码返回的 JSON 对象的结构。
在上述答案中,对象中只有 1 个“层”数据:
resultJSON = '{"1":"Firm 1","2":"Firm 2","3":"Firm 3"}';
但是我的 Delphi 代码似乎增加了一层。 查询如下:
function TServerMethods1.GetFirms(jobnumb: string): TJSONObject;
var
jso: TJSONObject;
begin
jso := TJSONObject.Create();
GetJobFirmList(jobnumb);
with SQLQuery1 do
while not Eof do
begin
jso.AddPair(TJSONPair.Create(FieldByName('firmref').AsString,
FieldByName('firmnaem').AsString));
Next;
end;
Result := jso;
end;
这将返回以下结果格式:
{"result":[{"1":"Firm 1","2":"Firm 2","3":"Firm 3"}]}
我要么需要减少方括号外的代码,要么了解如何更好地迭代关卡。
这个answer here 展示了如何以相似的结构解析两个层,但我能想出的最好的整合两者的方法是以下失败:
function getJobFirms()
{
var sel = $("#FirmList");
sel.empty();
var resultJSON = '{"result":[{"1":"Firm 1","2":"Firm 2","3":"Firm 3"}]}';
var result = $.parseJSON(resultJSON);
$.each(result, function() {
$.each(result.result, function(k,v) {
var opt = document.createElement('option');
opt.value = k;
opt.text = v;
sel.append(opt);
});
});
}
【问题讨论】:
标签: javascript jquery json delphi datasnap