【发布时间】:2013-01-21 23:23:27
【问题描述】:
所以我正在尝试使用 AJAX 加载一些数据。我可以加载数据,但它卡在 json 中。如何使它更简洁、更易于阅读?
//jquery
$.get("/get_artwork", function(data) {
var obj = jQuery.parseJSON(data)
$('.result').append("<br/> " + data + " ");
});
#Views.py
def get_artwork(request):
if request.is_ajax():
artwork = Artwork.objects.all()[1:]
if request.method == 'GET':
data = serializers.serialize("json", artwork, fields=('name','updated'), indent=2, use_natural_keys=True)
return HttpResponse(data,mimetype='application/javascript')
elif request.method == 'POST':
message = "This is an XHR POST request"
# Here we can access the POST data
print request.POST
else:
message = "Hello"
return HttpResponse(message)
这就是渲染:
[ { "pk": 3, "model": "artworks.artwork", "fields": { "updated": "2013-01-20T06:46:24Z" } }, { "pk": 2, "model": "artworks.artwork", "fields": { "updated": "2013-01-17T23:44:26Z" } }, { "pk": 1, "model": "artworks.artwork", "fields": { "updated": "2013-01-17T23:43:22Z" } } ]
我怎样才能使它更易于阅读?谢谢!
【问题讨论】:
-
如果你切换到内置 json,它有 'pretty print'/'indent' 选项:docs.python.org/2/library/json.html。
-
谢谢。你介意给我举个例子吗?我不知道如何使用 ajax 来实现。
-
这是发生了什么
"[\n {\n \"pk\": 3, \n \"model\": \"artworks.artwork\", \n \"fields\": {\n \"updated\": \"2013-01-20T06:46:24Z\"\n }\n }, \n {\n \"pk\": 2, \n \"model\": \"artworks.artwork\", \n \"fields\": {\n \"updated\": \"2013-01-17T23:44:26Z\"\n }\n }, \n {\n \"pk\": 1, \n \"model\": \"artworks.artwork\", \n \"fields\": {\n \"updated\": \"2013-01-17T23:43:22Z\"\n }\n }\n] -
将我的代码更改为
new = json.dumps(data, sort_keys=True, separators=(',', ': ')) return HttpResponse(new,mimetype='application/javascript')