列表/数组是否有效 JSON
Is a list/array valid JSON?
我希望编写一个提供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 结果,但我会使用第二个。它更具逻辑性和描述性。
相关文章:
- 如何将数组转换为有效的json
- 当其他解析器认为意外的令牌有效时,json.parse会失败
- jquery ajax”;SyntaxError:意外的输入结束“;基于有效的JSON
- 使用Underscore.js修改json数组中所选元素的更有效方法
- 将JSON存储和恢复到此Ionic应用程序的最有效方法
- JSON.parse给了我一个错误,但JSONLint说它'是一个有效的json
- I'我在页面加载时将整个$_SESSION变量放入一个json对象中.虽然这对我有效,但这是一个好的做法吗
- $http-get方法即使使用AngularJS中.Net WebApi的有效json也会失败
- 从文件目录结构创建JSON数据的有效功能
- 列表/数组是否有效 JSON
- 解析有效 JSON 时出现“未捕获的语法错误:意外令牌:”
- 以角度Js显示数据的有效JSON
- Javascript-JSON.parse:数据意外结束-使用有效JSON时出错.我做错了什么
- 带有Object数据的Javascript 2D数组通过$.Ajax()转换为PHP$_POST的有效JSON字符串
- 要解析的有效JSON或JavaScript对象
- 解析有效JSON字符串时遇到问题
- 返回有效JSON时调用Ajax错误回调
- 具有有效JSON输出的JSONP分析错误
- 从无效转换为有效 JSON
- 返回有效JSON时触发getJSON失败(即使在同一域上)