如何将嵌套的JSON数据设置为数据表? [英] How to set nested JSON data to datatables?
本文介绍了如何将嵌套的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.1
或list.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屋!
查看全文