0

所以我正在尝试使用 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" } } ]

我怎样才能使它更易于阅读?谢谢!

4

1 回答 1

1

根据您留下的评论..您的问题似乎在客户端下游(例如网络浏览器)。目前尚不清楚卡在 JSON 中是什么意思。如果您使用 JavaScript 解析 JSON,则需要使用JSON.parse()将其转换为原生 JavaScript 对象。如果您使用 jQuery 和该$.ajax()方法,则需要将其设置mimetypeapplication/json自动将其解析为 JSON。

更新

如果您想控制JSON数据在浏览器中的呈现方式,我建议您将 JSON 响应解析为原生 JavaScript 对象,然后遍历要在页面中呈现的对象和字段。例如,使用 jQuery:

$.ajax({
    url: '/some-url/',
    dataType: 'json',
    success: function(resp) {
        var i, k, li, obj, fields;

        for (i = 0; i < resp.length; i++) {
            obj = resp[i];
            // render obj pk or model name here... now iterate over fields
            fields = obj.fields;

            for (k of obj.fields) {
                li = $('<li>').text(k + ': ' + obj.fields[k]);
                // append the li to some element..
            }
        }
    }
});
于 2013-01-21T23:35:58.457 回答