Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何打印从Flask接收的JSON对象?_Javascript_Python_Html_Json_Web Services - Fatal编程技术网

Javascript 如何打印从Flask接收的JSON对象?

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

我的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 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);
});