列表/数组是否有效 JSON

Is a list/array valid JSON?

本文关键字:有效 JSON 是否 数组 列表      更新时间:2023-09-26

我希望编写一个提供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 中使用顶级原语,您会发现将来扩展起来更容易。

两者都是有效的JSON,但第二种方式是正确的;将JSON作为数组传递可能会导致安全漏洞。请参阅有关 JSON 安全性的相关文章以了解有关此内容的更多信息。在某些框架(例如 flask)中,甚至有一些度量值可以阻止您将 JSON 作为数组传递。

您可以使用

http://jsonlint.com/验证 JSON

两者都是有效的 JSON 结果,但我会使用第二个。它更具逻辑性和描述性。