我希望编写一个提供JSON对象列表的wish服务。返回以下内容的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"}
]}
发布于 2013-10-28 04:53:20
这两种形式都有效。但是,对于API,我建议使用第二种形式。原因是它为您提供了一条扩展API的路径。
例如,如果您有一个返回user对象数组的getUsersInGroup
应用程序接口,然后您决定要包含一些关于返回的用户的汇总统计信息,那么没有简单的方法可以在不中断现有客户端(或在每个user对象中包含大量冗余数据)的情况下完成此操作。如果使用对象,只需向对象添加另一个字段,该字段将被以前版本的API上的客户端静默忽略。
简而言之,尽量避免在API中使用顶级原语,这样以后扩展起来就更容易了。
发布于 2013-10-28 04:52:50
这两种方法都是有效的JSON,但第二种方法是正确的;将JSON作为数组传递可能会导致安全漏洞。有关这方面的更多信息,请参阅related post on JSON security。在一些框架中,例如flask,甚至有一些措施阻止您将JSON作为数组传递。
发布于 2013-10-28 04:49:09
您可以使用http://jsonlint.com/验证JSON
这两个都是有效的JSON结果,但我会使用第二个。它更具逻辑性和描述性。
https://stackoverflow.com/questions/19623339
复制相似问题