javascript - 列表/数组是有效的 JSON 吗?

这个问题在这里已经有了答案:
关闭9年前

我希望编写一个提供 JSON 对象列表的 Web 服务。返回以下内容是否有效 JSON:

[
  {"keyA1":"valA", "keyB1":"valB"}
 ,{"keyA2":"valA", "keyB2":"valB"}
 ,{"keyA3":"valA", "keyB3":"valB"}
]

或者是将它放在单个对象中返回的“正确”方法:

{"elements":[
   {"keyA1":"valA", "keyB1":"valB"}
  ,{"keyA2":"valA", "keyB2":"valB"}
  ,{"keyA3":"valA", "keyB3":"valB"}
]}

最佳答案

两种形式都有效。但是,对于 API,我会推荐第二种形式。原因是它为您提供了扩展 API 的途径。

例如,如果您有一个返回用户对象数组的 API getUsersInGroup,然后您决定要包含一些关于返回的用户的汇总统计信息,那么这并不容易在不破坏现有客户端(或在每个用户对象中包含大量冗余数据)的情况下做到这一点的方法。如果您使用一个对象,您只需向该对象添加另一个字段,该字段在以前版本的 API 上会被客户端静默忽略。

简而言之,在您的 API 中尽可能避免使用顶级原语,您会发现它在未来更容易扩展。

https://stackoverflow.com/questions/19623339/

相关文章:

python - 如何使用 JSON.loads 转换为 Python 日期时间对象?

javascript - 属性名称的 JSON 语法

json - 从 react 组件进行 REST 调用

json - 如何在 jq 中将 JSON 对象转换为 key=value 格式?

javascript - 使用 application/json 优于 text/plain 的优势

c# - 返回 JSON 对象 (ASP.NET WebAPI)

json - 如何在 Ubuntu 上看到一个漂亮的大型 JSON 文件?

python - 将 Json 嵌套到具有特定格式的 pandas DataFrame

python - Pandas 数据框到没有索引的json

javascript - Rails 中奇怪的 JSON Javascript 问题