【问题标题】:json library return non valid json for None typejson 库为 None 类型返回无效的 json
【发布时间】:2015-06-03 08:03:09
【问题描述】:

当我尝试使用 json 库序列化 None 对象时,根据我在json.orgjslintjson parser)中找到的几个验证工具,我得到了不是有效 JSON 的“null”字符串。

>>> import json
>>> json.dumps(None)
'null'

首先尝试序列化 None 对象是否正确?如果是,结果应该是什么('{}'?)?如果不是,如果我想在我的网络服务中返回 None,有什么解决方案?

【问题讨论】:

  • None 不是有效的 JSON 实体。因此,如果您的内容类型是 JSON,那么您的 Web 服务将无法返回 None
  • @thefourtheye 为什么 json 不会为 None 引发异常?
  • json 模块尝试将None 转换为其JSON 等效项,即null
  • @thefourtheye 你能提供一个链接到规范说 null 相当于 None 吗?
  • 查看this section中的表格。它不符合 JSON 规范,因为它不关心 Python 的类型,但 json 模块以这种方式实现它

标签: python json nonetype


【解决方案1】:

null 是一个完全有效的 JSON 字符串。在 JS 控制台中:

> JSON.parse('null')
null

【讨论】:

  • 能否提供一个指向规范的链接,或者它只是与 JavaScript 相关?我已经编辑了我的问题,并提供了将 null 视为无效 json 的工具的链接
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 2019-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多