java – 对象数组vs对象对象

问题是决定以下符号之间的折衷:

基于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"
    }
]

关于同一问题的this帖子,我决定(前端)使用JSON对象符号而不是对象数组,因为它适合我的要求,更好的性能和更少的代码在浏览器中。

但问题是列表本身不是静态的。我的意思是生成列表,即从DB(NoSQL)获取/存储,并通过服务器上的Java API为新条目创建。我不能决定在后端应该使用哪种符号(最终也会影响UI)。

任何关于性能,可维护性或可扩展性的想法/建议。

这是一个总体意见的问题。可能还有很多其他的点,但我可以指出如下。

基于JSON的方法:
如果我没有错,那么这将使用地图在服务器端实现。

优点:在JavaScript中,您可以直接使用users.id1,users.id2,即不需要迭代

缺点:在客户端,一些如何你需要ids存在于你的JSON,即硬编码它或使用一些动态的方法,将告诉你哪些id存在于你的JSON。

基于数组的方法:如果我没有错,那么将在服务器端使用Array / List实现。

优点:

>在客户端,你可以直接遍历数组,没有
提前担心哪个id在里面,即没有硬
编码。
>正如@JBNizet所指出的,基于数组的方法将保持顺序。

缺点:如果你想获取单个id,那么你将需要遍历数组。

通常我们不会在客户端发送很多信息,因此基于数组的方法不会产生任何问题。和转换数组到地图是可能的两边(服务器和客户端),如果你想要基于id的方法。

http://stackoverflow.com/questions/31469441/array-of-objects-vs-object-of-objects

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:java – 对象数组vs对象对象