jQuery 数据表处理 Null 子对象
jQuery Datatables Handle Null sub objects
我正在使用 jQuery DataTables,但是当我的 JSON 子对象是 null
时遇到问题。我的 JSON 有一个嵌套对象 address
,它可以是 null
,因此 address.streetAddress1
在 returns 和 error/warning.
之下
DataTables warning: table id=directory-table - Requested unknown parameter 'address.streetAddress1' for row 0. For more information about this error, please see http://datatables.net/tn/4
有没有办法处理 null
值,使其只是一个空字符串?
$(document).ready(function() {
$('#directory-table').dataTable( {
"lengthMenu": [ 10, 25, 50, 100 ],
"dom": 'C<"clear">lfrtip',
"ajax": {
"url": "directory.json",
"dataSrc" : ""
},
scrollX:true,
"columns": [
{"data" : "fileId"},
{"data" : "fileName"},
{"data" : "institutionId"},
{"data" : "id"},
{"data" : "firstName"},
{"data" : "middleName"},
{"data" : "lastName"},
{"data" : "prefix"},
{"data" : "suffix"},
{"data" : "preferredName"},
{"data" : "gender"},
{"data" : "deleteFlag"},
{"data" : "campusId"},
{"data" : "buildingId"},
{"data" : "primaryEmail"},
{"data" : "secondaryEmail"},
{"data" : "primaryPhone"},
{"data" : "secondaryPhone"},
{"data" : "address.streetAddress1"},
{"data" : "address.city"},
{"data" : "address.state"},
{"data" : "address.zipCode"},
{"data" : "orcid"},
{"data" : "trResearcherId"},
{"data" : "status.name"},
{"data" : "roomNumber"},
{"data" : "createdAt"},
{"data" : "updatedAt"}
]
} );
} );
此记录有 null
个 address
:
{"fileId":2,"fileName":"9999_DIRECTORY.csv","institutionId":1,"id":"EVER1003","firstName":"George","lastName":"Clooney","middleName":null,"prefix":null,"suffix":null,"preferredName":null,"gender":"M","deleteFlag":"N","campusId":null,"primaryEmail":"cclooney","secondaryEmail":null,"primaryPhone":null,"secondaryPhone":null,"address":null,"buildingId":null,"orcid":null,"trResearcherId":null,"status":{"id":0,"name":"Processed"},"tags":null,"roomNumber":null,"createdAt":"2015-07-22 15:41 PM GMT","updatedAt":"2015-07-22 15:41 PM GMT"}
这条记录有一个 address
:
{"fileId":2,"fileName":"9999_DIRECTORY.csv","institutionId":1,"id":"EVER1013","firstName":"Monica","lastName":"Galler","middleName":null,"prefix":null,"suffix":null,"preferredName":null,"gender":"F","deleteFlag":"N","campusId":"CAMP1000","primaryEmail":"monica@gmail.com","secondaryEmail":null,"primaryPhone":null,"secondaryPhone":null,"address":{"id":0,"streetAddress1":"123 Fake Street","streetAddress2":null,"city":"Cincinnati","state":"OH","stateId":0,"zipCode":"32444"},"buildingId":null,"orcid":null,"trResearcherId":null,"status":{"id":0,"name":"Processed"},"tags":null,"roomNumber":null,"createdAt":"2015-07-23 14:31 PM GMT","updatedAt":"2015-07-24 18:18 PM GMT"}
根据manual:
Additionally, this option can be useful when loading JSON data, as the value set here will be used if the cell value from the JSON is found to be null
(for example, you might set a default string of "Not available.").
例如:
{"data" : "address.streetAddress1", "defaultContent": ""},
{"data" : "address.city", "defaultContent": ""},
{"data" : "address.state", "defaultContent": ""},
{"data" : "address.zipCode", "defaultContent": ""},
使用 aoColumns,您可以指定一个 mRender 参数函数调用来检查相关值是否为空。例如:
$(document).ready(function() {
$('#directory-table').dataTable( {
"lengthMenu": [ 10, 25, 50, 100 ],
"dom": 'C<"clear">lfrtip',
"ajax": {
"url": "directory.json",
"dataSrc" : ""
},
scrollX:true,
"aoColumns": [
{"mData" : "fileId",
"mRender": function( data, type, full) {
if( data !== null ){
return data;
}
else{
return "";
}
},
//More column definitions
我正在使用 jQuery DataTables,但是当我的 JSON 子对象是 null
时遇到问题。我的 JSON 有一个嵌套对象 address
,它可以是 null
,因此 address.streetAddress1
在 returns 和 error/warning.
DataTables warning: table id=directory-table - Requested unknown parameter 'address.streetAddress1' for row 0. For more information about this error, please see http://datatables.net/tn/4
有没有办法处理 null
值,使其只是一个空字符串?
$(document).ready(function() {
$('#directory-table').dataTable( {
"lengthMenu": [ 10, 25, 50, 100 ],
"dom": 'C<"clear">lfrtip',
"ajax": {
"url": "directory.json",
"dataSrc" : ""
},
scrollX:true,
"columns": [
{"data" : "fileId"},
{"data" : "fileName"},
{"data" : "institutionId"},
{"data" : "id"},
{"data" : "firstName"},
{"data" : "middleName"},
{"data" : "lastName"},
{"data" : "prefix"},
{"data" : "suffix"},
{"data" : "preferredName"},
{"data" : "gender"},
{"data" : "deleteFlag"},
{"data" : "campusId"},
{"data" : "buildingId"},
{"data" : "primaryEmail"},
{"data" : "secondaryEmail"},
{"data" : "primaryPhone"},
{"data" : "secondaryPhone"},
{"data" : "address.streetAddress1"},
{"data" : "address.city"},
{"data" : "address.state"},
{"data" : "address.zipCode"},
{"data" : "orcid"},
{"data" : "trResearcherId"},
{"data" : "status.name"},
{"data" : "roomNumber"},
{"data" : "createdAt"},
{"data" : "updatedAt"}
]
} );
} );
此记录有 null
个 address
:
{"fileId":2,"fileName":"9999_DIRECTORY.csv","institutionId":1,"id":"EVER1003","firstName":"George","lastName":"Clooney","middleName":null,"prefix":null,"suffix":null,"preferredName":null,"gender":"M","deleteFlag":"N","campusId":null,"primaryEmail":"cclooney","secondaryEmail":null,"primaryPhone":null,"secondaryPhone":null,"address":null,"buildingId":null,"orcid":null,"trResearcherId":null,"status":{"id":0,"name":"Processed"},"tags":null,"roomNumber":null,"createdAt":"2015-07-22 15:41 PM GMT","updatedAt":"2015-07-22 15:41 PM GMT"}
这条记录有一个 address
:
{"fileId":2,"fileName":"9999_DIRECTORY.csv","institutionId":1,"id":"EVER1013","firstName":"Monica","lastName":"Galler","middleName":null,"prefix":null,"suffix":null,"preferredName":null,"gender":"F","deleteFlag":"N","campusId":"CAMP1000","primaryEmail":"monica@gmail.com","secondaryEmail":null,"primaryPhone":null,"secondaryPhone":null,"address":{"id":0,"streetAddress1":"123 Fake Street","streetAddress2":null,"city":"Cincinnati","state":"OH","stateId":0,"zipCode":"32444"},"buildingId":null,"orcid":null,"trResearcherId":null,"status":{"id":0,"name":"Processed"},"tags":null,"roomNumber":null,"createdAt":"2015-07-23 14:31 PM GMT","updatedAt":"2015-07-24 18:18 PM GMT"}
根据manual:
Additionally, this option can be useful when loading JSON data, as the value set here will be used if the cell value from the JSON is found to be
null
(for example, you might set a default string of "Not available.").
例如:
{"data" : "address.streetAddress1", "defaultContent": ""},
{"data" : "address.city", "defaultContent": ""},
{"data" : "address.state", "defaultContent": ""},
{"data" : "address.zipCode", "defaultContent": ""},
使用 aoColumns,您可以指定一个 mRender 参数函数调用来检查相关值是否为空。例如:
$(document).ready(function() {
$('#directory-table').dataTable( {
"lengthMenu": [ 10, 25, 50, 100 ],
"dom": 'C<"clear">lfrtip',
"ajax": {
"url": "directory.json",
"dataSrc" : ""
},
scrollX:true,
"aoColumns": [
{"mData" : "fileId",
"mRender": function( data, type, full) {
if( data !== null ){
return data;
}
else{
return "";
}
},
//More column definitions