繁体   English   中英

Python JSON模块不会为无效JSON引发异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM