我正在编写一个API,用于通过JSON从连接JDBC的Java中检索数据。我选择使用JSON,因为我们希望对浏览器中的数据进行排序和其他操作,并且我们将从跨域访问数据。
由于我实际上是在JavaScript中执行SQL查询,所以返回的数据本质上是表格式的。我开始这样写,这样您就可以得到列标签的列表,然后是值数组,例如:
{
"columns": [
"given_name",
"surname",
],
"results": [
[
"Joe",
"Schmoe"
],
[
"Jane",
"Doe"
]
]
}但是,当我开始编写JavaScript来处理返回的数据时,我想知道用键/值对输出结果是否更好,例如:
{
"results": [
{
"given_name": "Joe",
"surname": "Schmoe"
},
{
"given_name": "Jane",
"surname" : "Doe"
}
]
}如果你要返回大量的结果,那就是大量的重复文本。但我们将传输压缩,所以我不太关心带宽。
基本上,我应该设计这个,以便访问我的数据
$.getJSON(query, function(data) {
var columns = data.columns;
var results = data.results;
$.each(results, function(key, row) {
console.log(row[columns.indexOf('surname')]);
});
});或者更漂亮的
$.getJSON(query, function(data) {
var results = data.results;
$.each(results, function(key, row) {
console.log(row.surname);
});
});本质上,我想知道对性能的潜在影响是否证明后一种选择的语法更加简洁。
跟进
我确实实现了它的方式和个人资料。分析是一个很好的主意!性能上的差异是微不足道的。数据传输大小的差异是很大的,但是对于Gzip压缩,格式和格式之间的差异在很大的数据集和非常小的数据集之间下降到5-6%。所以我要说的是更漂亮的实现。对于这个特定的应用程序,我可以期望所有客户端都支持Gzip/Deflate,因此大小并不重要,而且客户机和服务器上的计算复杂度都非常相似,因此无关紧要。
对于任何感兴趣的人,这里是my data with graphs!
发布于 2011-05-03 00:05:13
综合其他答案:
您的有线格式不必与内存中的format.
此外:
。
发布于 2011-05-02 23:11:21
都是侧写。之后再进行优化。
发布于 2016-07-25 14:30:42
只是另一个JSON结构,我从中得到了非常好的结果:
{
"recordCount": 2,
"data": {
"Id": [1, 2],
"Title": ["First record", "Second record"],
"Value": [18192, 18176]
}
}遍历所有数据:
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());
}https://stackoverflow.com/questions/5863304
复制相似问题