如何将嵌套的JSON数据设置为数据表? [英] How to set nested JSON data to datatables?

查看:175
本文介绍了如何将嵌套的JSON数据设置为数据表?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个(嵌套的)数据结构,其中包含对象和数组.并尝试发送数据表,但仅显示一个值.

I have a (nested) data structure containing objects and arrays. And trying to sent datatables but only one value displaying.

JSON数据:

 {
"data": [{
  "name": "name1",
  "value": "value1",
  "list": [{
    "sname": "sname1",
    "svalue": "svalue1"
  }, {
    "sname": "sname2",
    "svalue": "svalue2"
  }]
}]
}

使用Java通过URL获取JSON数据.

JSON data getting through URL by using Java.

jQuery代码:

var pk = $("#pk").val();
console.log(pk);
url = "/register/search?id=" + pk;
console.log(url);
$('#largeTable').DataTable({
"ajax": url,
"bDestroy": true,
"columns": [{
  "data": "name"
},
{
  "data": "value"
},
{
  "data": "list.1.sname"
},
{
  "data": "list.1.svalue"
},
{
  "data": null,
  "defaultContent": editview
}
]
});

在这里可以使用list.1list.0

但是我一次想要两个值.

But I want two values at a time.

推荐答案

如果使用render或mRender,则可以对对象执行所需的操作.例如,您可以像本例中那样遍历数组.

If you used render or mRender you can do what you want with the object. For example you can traverse the array like in this example.

$('#largeTable').DataTable({
    "columnDefs": [
       {"targets": [0], "title":"name", "data":"name"},
       {"targets": [1], "title":"value", "data":"value"},
       {"targets": [2], "title":"list", "data":"list", "type":"html"
            "render":function(data){
                 var listArray = data;
                 var listHtml = "";
                 for(var i=0;i<listArray.length;i++) {
                     listHtml += listArray[i].sname + " " + listArray[i].svalue + "<br>";
                 } 
                 return listHtml;
             },
    }]
});

$.ajax({
     "type":"GET",
     "url":url,
     "success":function(data,status) {
           var jsonData = $.parseJSON(data);
           $('#largeTable').dataTable().fnAddData(jsonData);
     }

这篇关于如何将嵌套的JSON数据设置为数据表?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆