首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >列表/数组是有效的JSON吗?

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

Stack Overflow用户
提问于 2013-10-28 04:45:53
回答 3查看 32.4K关注 0票数 53

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

代码语言:javascript
复制
[
  {"keyA1":"valA", "keyB1":"valB"}
 ,{"keyA2":"valA", "keyB2":"valB"}
 ,{"keyA3":"valA", "keyB3":"valB"}
]

或者“正确”的做法是把它放在一个单独的对象中返回:

代码语言:javascript
复制
{"elements":[
   {"keyA1":"valA", "keyB1":"valB"}
  ,{"keyA2":"valA", "keyB2":"valB"}
  ,{"keyA3":"valA", "keyB3":"valB"}
]}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-28 04:53:20

这两种形式都有效。但是,对于API,我建议使用第二种形式。原因是它为您提供了一条扩展API的路径。

例如,如果您有一个返回user对象数组的getUsersInGroup应用程序接口,然后您决定要包含一些关于返回的用户的汇总统计信息,那么没有简单的方法可以在不中断现有客户端(或在每个user对象中包含大量冗余数据)的情况下完成此操作。如果使用对象,只需向对象添加另一个字段,该字段将被以前版本的API上的客户端静默忽略。

简而言之,尽量避免在API中使用顶级原语,这样以后扩展起来就更容易了。

票数 71
EN

Stack Overflow用户

发布于 2013-10-28 04:52:50

这两种方法都是有效的JSON,但第二种方法是正确的;将JSON作为数组传递可能会导致安全漏洞。有关这方面的更多信息,请参阅related post on JSON security。在一些框架中,例如flask,甚至有一些措施阻止您将JSON作为数组传递。

票数 9
EN

Stack Overflow用户

发布于 2013-10-28 04:49:09

您可以使用http://jsonlint.com/验证JSON

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19623339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档