作为 Kendo UI 和 Knockout 的新手(3 天!),我正在尝试将旧版 Java 小程序转换为 Javascript。到目前为止,创建和绑定 kendoGrid 相对容易:
函数 JobViewModel() { var self = this;
self.jobData = new ko.observableArray([]);
self.grdJobs = {
scrollable: true,
sortable: true,
filterable: false,
columnMenu: true,
resizable: true,
columns: [
{ title: "Job ID", field: "jobID" },
{ title: "Owner", field: "owner" },
{ title: "Description", field: "description" },
{ title: "State", field: "runState" },
{ title: "Start Time", field: "timeStart" },
{ title: "End Time", field: "timeEnd" },
{ title: "Elapsed Time", field: "timeElapsed" },
{ title: "Progress", field: "progress" },
{ title: "Agent", field: "agent" },
{ title: "Last Action", field: "lastAction" }
],
selectable: "single"
};
};
从服务器返回的数据是一组 JSON 对象(任意长度),如下所示(为简洁起见):
[{0: 1, 2: 3, 4: 5, ...}, {0: 1, 2: 21, 4: 5, ...}, {0: 1, 2: 23, 4: 5, ...}]
这个作为数字键/值对的对象数组被映射到一个字典对象,其中数字键与字符串值配对,例如:
{ 0:“状态” 1:“已完成” 2:“作业 ID” 3:“54759” 4:“所有者” 5:“约翰” ... 21:“54758” ... 23:“54757” ... .}
我需要得到的是字典中的映射字符串,因为它们与 JSON 对象数组相关。我尝试的方法是 JSON.stringify(obj[i]) 但后来我不确定我能用它做什么(也许在可以分配给 kendoGrid 的 ko.observable 中使用它?)无论如何,我根据上面显示的示例数据,我是一个带有列标题“JOB ID”、“Owner”和“State”的网格和 3 行作业(54757、54758、54759),所有这些都归 John 和 State完成的。
我希望这一切都有意义。我想我真正需要的是如何获取 JSON 并将其转换为可以填充到 Kendo Grid 中的可用内容。感谢您帮助 JS/JSON/Kendo/Knockout 新手!