My Flask webapp返回jsonify(数据)并且似乎正常工作(正确记录)。
HTML页面包含:
$.getJSON("http://127.0.0.1:5000/").done(function (data) {
console.log(data);
});
并且没有打印任何内容。我尝试了不同的方法,而我得到的最接近的是[对象对象]。
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]]]}
答案 0 :(得分:1)
对不起,有点迟到了。
我认为问题在于您正在尝试响应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);
});
答案 1 :(得分:0)
最好打印出服务器端生成的JSON字符串,以确保它首先生成正确。
然后,对于客户端,您可以在客户端javascript代码上设置一个断点,并尝试观察从服务器端收到的值,以确保在接收时它是正确的。
然后,如果您真的想使用console.log打印出来,可以使用JSON.stringify方法,如下所述。
尝试
$.getJSON("http://127.0.0.1:5000").done(function (data) {
// indentation level = 2
var str = JSON.stringify(data, undefined, 2);
console.log(str);
});
有关方法JSON.stringify的详细说明,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify。