flask_json扩展名是否支持顶级数组JSON响应?

时间:2016-07-28 21:44:17

标签: python json flask

我一直在我的Flask API中为项目使用flask_json的as_json装饰器。这对于顶层({name: ... })的dicts / hashes的json响应很有效,但是我想做一个JSON响应,它是顶层的列表/数组:

[
  {
    "created_at": "02/07/2016 00:01:43", 
    ...
  },
  {
    "created_at": "02/07/2016 00:02:43", 
    ...
  }
]

但是,当我尝试返回一个数组时,它会引发一个ValueError:“不支持的返回值”异常。当我查阅模块的documentation时,它似乎只支持dict返回值。看起来json_response()的所有示例输出也产生散列JSON。这是否意味着我应该使用jsonify?

1 个答案:

答案 0 :(得分:2)

在0.11之前,Flask的jsonify函数只接受顶层的dicts。这是因为非常旧版本的Internet Explorer存在安全问题,可以通过覆盖Array原型来攻击。

从Flask 0.11开始,jsonify接受顶级的任何有效JSON值。

Flask-JSON与0.3.2jsonify类型相同。