python - 在 View 中强制应用程序/json MIME 类型(Flask)

我不知道如何强制 MIME 类型 application/json 用于 Flask 中的 View 。这是我为演示目的而汇总的一个简单 View :

@app.route("/")
def testView():
    ret = '{"data": "JSON string example"}'
    return ret

JSON 字符串(保存在变量 ret 中)是从其他地方收集的(使用来自另一个使用 subprocess 的程序的标准输出),所以我不能使用 Flask 提供的 jsonify

我已经查看了 "Returning Json" Documentation 和 this Stackoverflow 问题,但到目前为止我还没有运气。我已经四处寻找了一段时间,并将继续搜索,但我想我会在这里问一下,以防万一有人遇到这个问题。

谢谢。


查看 answer below

解决办法:

@app.route("/")
def testView():
    ret = '{"data": "JSON string example"}'

    resp = Response(response=ret,
                    status=200,
                    mimetype="application/json")

    return resp

我发现这个网站很有用:Implementing a RESTful Web API with Python & Flask

最佳答案

如果你使用:

from flask import jsonify

然后在你的代码中:

return jsonify(somedict)

然后 jsonify() 自动将 mime 类型设置为 'application/json'

编辑:

以前被认为是一种风险,但现在不是了,Flask 也更新了它的建议:“ECMAScript 5 关闭了这个漏洞,所以只有非常旧浏览器仍然容易受到攻击。所有这些浏览器都有其他更严重的漏洞,因此此行为已更改,jsonify() 现在支持序列化数组。" http://flask.pocoo.org/docs/1.0/security/#json-security

https://stackoverflow.com/questions/11945523/

相关文章:

json - 我应该如何处理 JSON 中的 HATEOAS 链接和引用?

java - 将 InputStream 转换为 JSONObject

python - 如何在保留矩阵维度的同时序列化 numpy 数组?

json - JSONObject 的 Jackson 2 等价物是什么?

json - 在 Play Framework JsObject 中解析 Json 数组

json - Scala:将 JSON 直接解析为案例类

java - 在 JAX-RS 2.0 客户端库中处理自定义错误响应

c# - 如何从 jQuery ajax 调用将复杂对象传递给 ASP.NET WebApi GET

javascript - IE10/11 Ajax XHR 错误 - SCRIPT7002 : XM

ios - 使用 JSONEncoder 将 nil 值编码为 null