在JavaScript中使用Django JSON响应对象
这可能是个傻问题,但我对JavaScript还挺陌生的。我有一个用Python字典编码的JSON响应,我想把它用作JavaScript中的数据。
不过,Django返回的内容是一个字符串,里面包含了一个头部和一个哈希表。
那么,应该在哪里处理这些内容,把它们变成可以用的数据呢?(我只想要哈希表)
- 在views.py里(我需要重新审视一下返回JSON对象的方式)
- 在模板里(我的方法还不错,但我应该写一个自定义过滤器)
- 在我的HTML里(我应该在文档加载时在JavaScript中去掉结果的头部)
谢谢!
补充:
jQuery部分
var chart;
$(document).ready(function() {
chart = new Mycharts.Chart({
chart: {
renderTo: 'container',
defaultSeriesType: 'bar'
},
settings: {
data: [],
},
...
视图部分
data = assemble_dict()
testVar2 = json_response(data)
return render_to_response('home.html', { "testVar": testVar, "testVar2": testVar2 })
应用逻辑
def assemble_dict():
data = {}
objects = Balance.objects.all()
for obj in objects:
data[obj.name.name_bank] = obj.money
return data
def json_response(*args):
return HttpResponse(
simplejson.dumps(args),
)
这是我现在从{{ testVar2 }}得到的内容:Content-Type: text/html; charset=utf-8 [{"Stuff": 50, "MoreStuff": 3}]
1 个回答
1
为什么你的视图和应用逻辑分开呢?我猜你指的是这个。看起来你的 json_response
函数其实就是一个视图,因为它返回了一个 HttpResponse。你要么直接返回 json_response
的值,要么就把这个函数里的 HttpResponse
调用去掉。