问题在于确定以下符号之间的权衡:
基于JSON :
"users": { "id1": { "id": "id1", "firstname": "firstname1", "lastname": "lastname1" }, "id2": { "id": "id2", "firstaame": "firstname2", "lastname": "lastname2" } }
基于数组 :
users: [ { "id": "id", "key2": "value2", "key3": "value3" }, { "id": "id", "key2": "value2", "key3": "value3" } ]
关于同一问题的这篇文章,我已经决定(在前端)使用JSON对象表示法而不是对象数组,因为它符合我的要求,更好的性能和更少的浏览器代码。
但是问题在于列表本身不是静态的。我的意思是,该列表正在生成,即从DB(NoSQL)获取/存储,并通过服务器上的JavaAPI为新条目创建。我无法决定在后端应使用哪种表示法(最终也会影响UI)。
关于性能,可维护性或可伸缩性的任何想法/建议均应受到赞赏。
这是一个完全基于意见的问题。可能还有许多其他要点,但我可以指出如下。
基于JSON的方法: 如果我没有记错,那么这将Map在服务器端使用来实现。
Map
优点: 在JavaScript中,您可以直接使用users.id1,users.id2,即无需迭代
缺点: 在客户端,您将需要一些如何使用JSON中存在的ID的方法,即硬编码它或使用某种动态方法来告诉您JSON中存在哪些ID。
基于数组的方法: 如果我没有记错的话,这将在服务器端使用Array/ 来实现List。
Array
List
优点:
缺点: 如果要获取单个id,则需要遍历数组。
通常,我们不会在客户端发送太多信息,因此基于数组的方法不会造成任何问题。和 转化数组地图有可能在两侧(服务器和客户端) ,如果你想基于ID的方法。