2013-03-04 132 views
9

JSON值是字符串,数字,true,false,null是否有效JSON? 即是JSON值是否有效JSON?

true 

一个有效的JSON文件?还是必须是数组/对象?

一些验证器接受此(例如http://jsonlint.com/),而其他验证器则不接受(例如http://jsonschemalint.com/)。 RFC和json.org在这个问题上并不清楚。

+0

RFC在这个问题上确实很清楚。 – djechlin 2013-03-04 16:40:10

+0

这已被重新询问[这里](http://stackoverflow.com/questions/18419428/what-is-the-minimum-valid-json/18419527),并收到更详细的答案。我建议将其标记为重复,并保留较新的问题。 – IMSoP 2013-08-24 14:37:01

回答

8

From the specification

甲JSON文本是序列化对象或阵列

在JSON文本的最外的数据类型,必须为一个对象或一个阵列,它不能是字符串,布尔值,数字或任何其他数据类型。

+1

虽然这个答案根据官方规范是正确的,但有趣的是JSON.parse(42)似乎可以在浏览器中使用。 – bobics 2013-07-03 19:15:04

+1

只是一个技术说明 - 你提到的RFC是“用于JavaScript对象表示法的应用程序/ json媒体类型”。不是这样的JSON格式。 http://www.json.org/和ECMA-404都没有声明(afaik)。我个人觉得奇怪的是[42]是有效的JSON,而简单的42则不是。 – Elephantik 2014-07-01 13:58:58

+0

请参阅http://stackoverflow.com/questions/19569221/did-the-publication-of-ecma-404-affect-the-validity-of-json-texts-such-as-2-or(注意发布日期ecma-404和这个答案)。 – Quentin 2014-07-01 14:13:22