gpt4 book ai didi

java - 对象数组与对象对象

转载 作者:IT老高 更新时间:2023-10-28 12:45:37 32 4
gpt4 key购买 nike

问题在于决定以下符号之间的权衡:

基于 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 对象表示法而不是对象数组,因为它符合我的要求、更好的性能和更少的浏览器代码。

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

感谢您对性能、可维护性或可扩展性提出任何想法/建议。

最佳答案

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

基于 JSON 的方法:如果我没记错的话,这将在服务器端使用 Map 来实现。

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

缺点:在客户端,您需要一些方式来要求 JSON 中存在的 id,即硬编码或使用一些动态方法来告诉您 JSON 中存在哪个 id。


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

优势:

  1. 在客户端,您可以直接遍历数组,无需提前担心其中存在哪个id,即没有硬编码。
  2. 正如 @JBNizet 所指出的,基于数组的方法将保持顺序。

缺点:如果要获取单个 id,则需要遍历数组。

通常我们不会在客户端发送太多信息,因此基于数组的方法不会产生任何问题。如果您想要基于 id 的方法,在双方(服务器和客户端)都可以将数组转换为 map

关于java - 对象数组与对象对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31469441/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com