我希望编写一个提供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的途径。
例如,如果您有一个getUsersInGroup返回用户对象数组的API ,后来又决定要包含一些有关返回用户的汇总统计信息,那么没有不破坏现有客户端(或包括每个用户对象中有很多冗余数据)。如果使用对象,则只需向该对象添加另一个字段,客户端在以前版本的API上会默默地忽略该字段。
getUsersInGroup
简而言之,请尽量避免在API中使用顶级原语,并且将来会发现它更容易扩展。