Jus*_*rce 29 javascript jquery json
我正在编写一个API,用于通过JSON从JDBC连接的Java Servlet中检索数据.我选择使用JSON,因为我们想要对浏览器中的数据进行排序和其他操作,我们将从跨域访问数据.
由于我基本上是在JavaScript中进行SQL查询,因此返回的数据本质上是表格式的.我开始编写这个,以便您返回列标签列表,然后返回值数组,例如:
{
"columns": [
"given_name",
"surname",
],
"results": [
[
"Joe",
"Schmoe"
],
[
"Jane",
"Doe"
]
]
}
Run Code Online (Sandbox Code Playgroud)
但是当我开始编写JavaScript来处理返回的数据时,我想知道用键/值对输出结果是否更好,例如:
{
"results": [
{
"given_name": "Joe",
"surname": "Schmoe"
},
{
"given_name": "Jane",
"surname" : "Doe"
}
]
}
Run Code Online (Sandbox Code Playgroud)
如果你要返回很多结果,那就是很多重复的文本.但是我们将要运输gzip,所以我不太关心带宽.
基本上,我应该设计这个,以便我访问我的数据
$.getJSON(query, function(data) {
var columns = data.columns;
var results = data.results;
$.each(results, function(key, row) {
console.log(row[columns.indexOf('surname')]);
});
});
Run Code Online (Sandbox Code Playgroud)
或者更漂亮
$.getJSON(query, function(data) {
var results = data.results;
$.each(results, function(key, row) {
console.log(row.surname);
});
});
Run Code Online (Sandbox Code Playgroud)
?
从本质上讲,我想知道对性能的潜在影响是否证明了后一种选择的更清晰的语法.
我确实实现了它的方式和配置文件.分析是个好主意!表现差异很小.在数据传输大小的差异是显着的,但与Gzip压缩,方差下降到这两种格式之间的5-6%和非常大和非常小的数据集之间.所以我会选择更漂亮的实施方案.对于这个特定的应用程序,我可以期望所有客户端都支持Gzip/Deflate,因此大小无关紧要,客户端和服务器上的计算复杂性足够相似,无关紧要.
对于任何感兴趣的人,这是我的图表数据!
合成其他答案:
进一步:
只是另一个 JSON 结构,我从中得到了非常好的结果:
{
"recordCount": 2,
"data": {
"Id": [1, 2],
"Title": ["First record", "Second record"],
"Value": [18192, 18176]
}
}
Run Code Online (Sandbox Code Playgroud)
遍历所有数据:
for (var i = 0; i < recordSet.recordCount; ++i) {
console.log("Record " + i.toString() + ":");
for (var field in recordSet.data)
console.log("\t" + field + ": " + recordSet.data[field][i].toString());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9919 次 |
| 最近记录: |