有时,从AJAX请求调用的JSON对象会丢失我要在表中显示的值的键/属性。问题是缺少键时,它将导致在控制台中记录“ TypeError:无法读取未定义的属性'名称'”,并破坏了我的代码。我尝试使用|| 声明,但这没有用。请参见下面的代码段:
function getNextObject() {
$.ajax({
url: "http://scrapi.org/object/" + randomNum,
success: function(data) {
var timeline = data.timelineList[0].name || "not available";
var medium = data.medium;
var culture = data.culture;
var geo = data.geography;
var date = data.dateText;
var gallery = data.galleryLink;
var title = data.title;
var artist = data.primaryArtist.name || "not available";
var image = data.currentImage.imageUrl;
JSON对象中并不总是包含PrimaryArtist和timelineList,从而引发错误并导致代码中断。我该如何克服呢?
问题是您的代码试图获取.name
这些变量的,而变量本身可能为空。
你可以建立一个if
围绕着变数timelineList
和primaryArtist
您如何尝试这些替代品:
var timeline = data.timelineList ? data.timelineList[0].name : "not available";
...
var artist = data.primaryArtist ? data.primaryArtist.name : "not available";
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句