首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于查询的构造JSON数据的有效方法

用于查询的构造JSON数据的有效方法
EN

Stack Overflow用户
提问于 2013-10-22 21:38:06
回答 1查看 121关注 0票数 2

我正在努力想出一种高效的方法,将静态数据存储在JSON中,以便在查询客户端使用它。

目前,这些数据由大约60个CSV文件组成,每个文件都有大约。每项2000-2200项。我解析这个数据服务器端,并有一个webservice来处理来自客户端的查询。如前所述,我希望能够将其移到客户端,以便web应用程序可以使用应用程序缓存脱机工作。

以下是数据的一个小样本:

代码语言:javascript
复制
Battle Axe,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1
150,19EK,21EK,23EK,25EK,33ES,33ES,36ES,36ES,34ES,36ES,40ES,40ES,34ES,34ES,39ES,42ES,38ES,41ES,44ES,46ES
149,19ES,21ES,23ES,25ES,33ES,33ES,36ES,36ES,34ES,36ES,40ES,40ES,34ES,34ES,39ES,42ES,38ES,41ES,44ES,46ES
148,19EK,21EK,23EK,25EK,33ES,33ES,36ES,36ES,34ES,36ES,39ES,40ES,34ES,34ES,39ES,42ES,37ES,40ES,44ES,45ES
147,19ES,21ES,23ES,25ES,33ES,32ES,35ES,35ES,33ES,35ES,39ES,39ES,33ES,33ES,38ES,41ES,37ES,40ES,43ES,45ES

我最初转换为JSON的尝试基于以下几点:

  • 每个文件都是一个JSON对象(让我们将这个对象称为“weapon”)
  • 文件中的每一行都是存储在相应武器对象下的数组中的另一个JSON对象。
  • 行的每个条目都存储在行对象下的一个固定长度数组中。
  • 所有的“武器”对象都存储在一个数组中。

这意味着我有一个数组,它由大约一个数组组成。60个对象,这些对象平均有100个对象存储在其中。这100个对象中的每一个都有一个由20个对象组成的数组,每个条目包含实际值和一些额外的元数据。如你所见,我已经在120 K的物体上了.由此产生的缩小的json字符串为3mb。以下是小样本:

代码语言:javascript
复制
var weapon = 
{
 Name: 'Broadsword',
 HitEntries: [ 
 {
    High: 150,
    Low: 150,
    Unmodified: false,
    Hits: [ { Hits: '12', Critical: 'CK', Fail: false},...,{ Hits: '1', Critical: '', Fail: false}]
 }, 
 ...
 {
    High: 50,
    Low: 47,
    Unmodified: false,
    Hits: [ { Hits: '3', Critical: '', Fail: false}] 
 }
 ]
}

将运行的查询示例如下所示。它将以上述csv样本数据为基础:

  • 战斧武器被选中
  • 为滚动(行)选择147的值。
  • 为装甲类型(列标题)选择9的值。

以上结果应该是39ES (行和标题之间的交叉引用)。

在这一点上,我认为这可能是一个好主意,获得一些建议,然后才走上这条道路。任何输入都很感谢=)

EN

回答 1

Stack Overflow用户

发布于 2013-11-14 09:44:00

您可以在这里进行一些优化:

  1. 如果可能的话,使用WebSockets来流数据
  2. 将数据转换为TypedArrays (blobs) --您将最终处理类似于10K文件的内容。
  3. 如果需要,可以使用索引DB查询
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19528859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档