[英]Python JSON module not throwing exception for invalid JSON
因此,有效的JSON必须是对象或数组,对吗? 我期待以下代码引发异常,但事实并非如此:
>>> import json
>>> json.loads("245235")
245235
这不是无效的JSON *。 就像对象一样,数字是有效的JSON类型。 尽管对象和数组可能是最常见的顶级类型,但http://en.wikipedia.org/wiki/JSON#Data_types.2C_syntax_and_example这些类型中的任何一种都可以单独出现。
*根据python实现
编辑:
正如已删除(不确定原因)答案中指出的那样,python文档建议JSON RFC确实要求顶级对象具有数组或对象类型,但json
模块不强制执行此操作。 由于我对JSON的了解很多来自使用python json
模块,因此我不知道此行为的可移植性。
根据要求,请在http://docs.python.org/2/library/json.html#standard-compliance中注明:
该模块不严格遵循RFC,它实现了一些扩展,这些扩展是有效的JavaScript,但不是有效的JSON。 尤其是:
- 顶级非对象,非数组值被接受并输出;
- 无限和NaN数值被接受并输出;
- 接受对象中的重复名称,并且仅使用姓氏/值对的值。
JSON数据可以具有多种类型,包括字符串,数字和布尔值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.