我的移动应用程序出了问题,我不知道如何解决它。 当我按下一个从数据库获取数据的按钮时,我在json中解析它,当我想在我的应用程序中使用它时,我得到undefined。锄头我可以做到这一点,所以我没有得到unifined。
注意 我只在数据库为空时才得到unfind。
这是我使用的代码
subjectButton.addEventListener('click', function(e) {
Subjects.getSubjects(url, function(response) {
if(response == '') {
alert('There where no subjects found');
} else {
subjectView.remove(subjectsLabel);
var data = JSON.parse(response);
if(data != 'undefined') {
var subjectNameButton = [];
var subjectEditButton = [];
var subjectDeleteButton = [];
for(i in data) {
id = data[i].id;
var subject = data[i].subject;
var year = data[i].year;
var status = data[i].status;
var color;
Ti.API.info('id: ' + id);
Ti.API.info('type id: '+ typeof id);
有人可以向我解释我是如何做到的,所以我没有得到未定义的
答案 0 :(得分:2)
喜欢@ 0101说json无法返回undefined
所以你的问题就在别的地方。
我知道这不是最好的解决方案,但似乎对我有用:
subjectButton.addEventListener('click', function(e) {
Subjects.getSubjects(url, function(response) {
if(response == '') {
alert('There where no subjects found');
} else {
subjectView.remove(subjectsLabel);
var data = JSON.parse(response);
var subjectNameButton = [];
var subjectEditButton = [];
var subjectDeleteButton = [];
for(i in data) {
id = data[i].id;
var subject = data[i].subject;
var year = data[i].year;
var status = data[i].status;
var color;
Ti.API.info('id: ' + id);
if(id != undefined) {
//Your code here
} else {
alert('There where no subjects found');
}
}
}
});
});
所以在这里你检查一个变量是否返回undefined。如果它不是undefined
它将运行您的代码,它将为您/用户提供警报消息
答案 1 :(得分:1)
您永远不会从"undefined"
获得JSON.parse
。错误必须发生在其他地方。试试这个:
Subjects.getSubjects(url, function(response) {
if(!response) {
alert('There where no subjects found');
}
else {
subjectView.remove(subjectsLabel); // You probably should move this after JSON.parse
try {
var data = JSON.parse(response),
subjectNameButton = [],
subjectEditButton = [],
subjectDeleteButton = [];
for (i in data) { // Global i?
id = data[i].id; // Global too?
var subject = data[i].subject;
var year = data[i].year;
var status = data[i].status;
var color;
Ti.API.info('id: ' + id);
Ti.API.info('type id: '+ typeof id);
// ...
}
}
catch(e) {
console.log("Invalid JSON")
};
// ...
}
}