繁体   English   中英

遍历数据表中的嵌套JSON对象

[英]Looping through a nested JSON object in datatables

我正在寻找通过javascript中的JSON对象进行迭代的方法。 现在,它正在将每个“项目”加载到单个单元格中,而不是将每一列的每一行都放入1个项目。 例如,我想要得到:

Period         Name          Amount
1/1/2014    Accounting       $500.00

我得到的是:

       Period                             Name                Amount
1/1/2014, Accounting, $500       1/1/2014, Finance, $750    ...,...,...

产生JSON对象的视图是:

def BudgetJson(request):
    from django.http import JsonResponse
    resultset = models.Expense.objects.filter(category_id=1)
    d = {'data' : [[[model.expensePeriod, model.expenseName, 
           model.expenseAmount] for model in resultset]]}
    return JsonResponse(d)

我正在使用datatables库来呈现表,并使用AJAX来接收JSON对象(通过URL):

<script type="text/javascript" class="init">

    $(document).ready(function() {
        $('#expenses').DataTable( {
            "ajax": '{% url "property:budget:budget_json" %}'
        });
    });
</script>

据我所知,我的看法是输出单个键/项目,这就是为什么我得到这个结果-我想知道的是,是它更好地让通过JSON对象的JavaScript循环,是可以使用datatables UI库? 还是应该更改视图输出的JSON对象的结构?

你可以这样
产生JSON对象:

def BudgetJson(request):
    from django.http import JsonResponse
    out_list = []
    resultset = models.Expense.objects.filter(category_id=1)
    for model in resultset:
        temp_dict = {'expense_period': model.expensePeriod, 'expense_name':model.expenseName, 'expense_amount':model.expenseAmount }
        out_list.append(temp_dict)
    data = {'data' : out_list }
    return HttpResponse(json.dumps(data), content_type='application/json')

和你里面<script>标记的datatable意志

$('#expenses').DataTable( {
                    "ajax" : "your-url",
                    "columns" : [
                    {"data" : "expense_period"},
                    {"data" : "expense_name"},
                    {"data" : "expense_amount"},
                    ]
                });

这将起作用。 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM