JSON设计最佳实践

hen*_*dry 10 javascript json ember.js

我设计了邮箱JSON表示,以便我可以轻松查找邮件,例如mailjson[UID].Body.

然而,在查看Angularjs和Ember,模板化MVC JS引擎之后,似乎JSON应该具有以下格式:

[{
   "id": 1,
   "body": "Blah blah blah..."
 },
 {
   "id": 2,
   "body": "More blah foo blah"
 },
 {
   "id": 3,
   "body": "Hopefully you understand this example"
}]
Run Code Online (Sandbox Code Playgroud)

然后有一些findAll(id)函数根据所需的id来获取项目,迭代JSON.所以现在我想知道我的JSON设计是否有价值?我做错了吗?为什么人们不使用我的JSON使用的字典查找设计?

任何其他提示,以确保我有一个良好的数据结构设计,我将不胜感激.

alp*_*pav 8

在JSON中存储大表的最佳实践是使用数组.

原因是当将JSON数组解析为内存数组时,构建映射没有速度损失.如果需要通过多个字段构建内存索引以便快速访问,则可以在加载期间或之后执行此操作.但是如果你像你一样存储JSON,你就没有选择在没有构建地图的情况下快速加载,因为JSON解析器总是必须根据你的结构构建那个巨大的id图.

将数据存储在内存中的结构不必(也不应该)与磁盘上的存储结构相同,因为无法序列化/反序列化内部JavaScript映射结构.如果可能,那么就像MS SQL Server存储表和索引一样序列化和存储索引.

但是如果您使用的框架强制您在内存和磁盘中具有相同的结构,那么我支持您在一个大对象中使用id作为键的选择,因为这样可以更容易地在服务器的JSON请求中传递id以执行任何操作使用电子邮件项目或更新它在UI中的状态,假设服务器和浏览器都在内存中保留了重要的电子邮件项目列表.