Javascript 如何打印从Flask接收的JSON对象?
我的Flask webapp返回jsonify(数据),并且似乎工作正常(日志记录正确) HTML页面有:Javascript 如何打印从Flask接收的JSON对象?,javascript,python,html,json,web-services,Javascript,Python,Html,Json,Web Services,我的Flask webapp返回jsonify(数据),并且似乎工作正常(日志记录正确) HTML页面有: $.getJSON("http://127.0.0.1:5000/").done(function (data) { console.log(data); }); 什么也没印出来。我尝试过不同的方法,最接近的方法是[object] Python代码类似于: @app.route("/") def run(): rows = [] # code to po
$.getJSON("http://127.0.0.1:5000/").done(function (data) {
console.log(data);
});
什么也没印出来。我尝试过不同的方法,最接近的方法是[object]
Python代码类似于:
@app.route("/")
def run():
rows = []
# code to populate rows with values from a db
data = {'rows' : rows}
print json.dumps(data)
return jsonify(data)
json.dumps()打印{“行”:[[[1.0,2.0]]]}- 最好打印出服务器端生成的JSON字符串,以确保首先生成的JSON字符串正确无误
- 然后,对于客户端,您可以在客户端javascript代码上设置一个断点,并尝试观察从服务器端接收到的值,以确保在接收时该值是正确的
- 然后,如果您真的想使用console.log打印出来,可以使用JSON.stringify方法,如下所述
有关方法JSON.stringify的详细说明,请参阅。抱歉,回到这里有点晚 我认为问题在于您试图响应getJSON调用的“done”事件。getJSON调用是“ajax”的包装器,但我打赌它会覆盖传入的默认函数的“done”回调。以这种方式使用getJSON:
$.getJSON("http://127.0.0.1:5000", function(data) {
var str = JSON.stringify(data, undefined, 2);
console.log(str);
});
也不会打印任何东西。通过Web控制台,我可以看到响应头中有“application/json”,但没有响应体。服务器端似乎按预期工作(也使用curl进行了测试)。我没有运气用浏览器的调试器来排除故障。JSON.stringify也不起作用(执行似乎没有达到这一点)。
$.getJSON("http://127.0.0.1:5000", function(data) {
var str = JSON.stringify(data, undefined, 2);
console.log(str);
});