如何访问 javascript 中数组的值
how to access value of array in javascript
我正在使用 Rest api (Apigee Baas) 在 Titanium Studio 中构建一个 Android 应用
作为后端组件。
我在 Apigee Baas 中有一些数据,例如:姓名、地址、出勤率等。
首先在我的代码中,我通过以下方式从 Rest API 获得响应..
"entities" : [ {
"uuid" : "8780273a-d210-11e4-81a4-cba5dc698934",
"type" : "attendance",
"created" : 1427192916259,
"modified" : 1427192916259,
"attendance" : [ {
"date" : "10-09-1991",
"atn" : "0"
} ],
"disputes" : "None",
"metadata" : {
"path" : "/attendances/8780273a-d210-11e4-81a4-cba5dc698934"
},
"password" : "1122",
"servicepro" : "pqrst",
"username" : "priyankaa"
} ],//json object response
我在 Titanium Studio 中尝试了以下代码。
index.js file
function doClick(e){
var url = "api.usergrid.com/PRI_95616/LOGIN/attendances?ql=select * where
username= '"+$.usertf.value.toString()+"'
and password='"+$.passtf.value.toString()+"'";
var client = Ti.Network.createHTTPClient({
// function called when the response data is available
onload : function(e) {
var params={};
var json=JSON.parse(this.responseText);
Ti.API.info('resp is'+this.responseText);
var user=json.entities[0].username;
params["username"]=user;
var pass=json.entities[0].password;
params["password"]=pass;
var servp=json.entities[0].servicepro;
params["servicepro"]=servp;
var atnd=json.entities[0].attendance[0].atn;
params["attendance"]=atnd;
Ti.API.info('atn'+atnd);
var atndate=json.entities[0].attendance[0].date;
params["attendance"]=atndate;
Ti.API.info('atn'+atndate);
if((user==$.usertf.value.toString() && pass==$.passtf.value.toString())
{
var window = Alloy.createController('profile', params).getView();
window.open();
}
else{
alert('error');
};
},
onerror : function(e) {
Ti.API.debug(e.error);
alert('error');
},
timeout : 5000 // in milliseconds
});
// Prepare the connection.
client.open("GET", url);
// Send the request.
client.send();//http request
}
$.index.open();
这里的 attendance 是存储在 apigee bass 中的两个对象 atn 和 date 的数组。
现在我得到了出勤值,但是当我超过这个出勤值时,即
数组到另一个使用参数的控制器,它在那里不被访问。
其他值示例用户名地址已正确访问。只有出勤值未被访问..
下面是我的 profile.js 文件。这是我访问这些值的另一个控制器。
profile.js
var args = arguments[0] || {};
$.tff.text=args.username;
$.sertf.text=args.servicepro;
$.prevtf.text=args.attendance[0];
Ti.API.info('ath prof: '+args.attendance.atn);
Ti.API.info('ath date prof: '+args.date);
Ti.API.info('atnd:'+args.attendance[0].atn);
此处 profile.js 无法访问数组考勤。
如何访问这些数组元素
谁能帮帮我
您没有从 index.js
发送 attendance
作为数组并尝试在 profile.js
中访问它
如果你要改变
var atndate=json.entities[0].attendance[0].date;
params["attendance"]=atndate;
到
var atndate=json.entities[0].attendance[0];
params["attendance"]=atndate;
我认为它会起作用。
此外,您正在覆盖代码中的 params["attendance"]
。
希望对您有所帮助。
我正在使用 Rest api (Apigee Baas) 在 Titanium Studio 中构建一个 Android 应用 作为后端组件。 我在 Apigee Baas 中有一些数据,例如:姓名、地址、出勤率等。
首先在我的代码中,我通过以下方式从 Rest API 获得响应..
"entities" : [ {
"uuid" : "8780273a-d210-11e4-81a4-cba5dc698934",
"type" : "attendance",
"created" : 1427192916259,
"modified" : 1427192916259,
"attendance" : [ {
"date" : "10-09-1991",
"atn" : "0"
} ],
"disputes" : "None",
"metadata" : {
"path" : "/attendances/8780273a-d210-11e4-81a4-cba5dc698934"
},
"password" : "1122",
"servicepro" : "pqrst",
"username" : "priyankaa"
} ],//json object response
我在 Titanium Studio 中尝试了以下代码。
index.js file
function doClick(e){
var url = "api.usergrid.com/PRI_95616/LOGIN/attendances?ql=select * where
username= '"+$.usertf.value.toString()+"'
and password='"+$.passtf.value.toString()+"'";
var client = Ti.Network.createHTTPClient({
// function called when the response data is available
onload : function(e) {
var params={};
var json=JSON.parse(this.responseText);
Ti.API.info('resp is'+this.responseText);
var user=json.entities[0].username;
params["username"]=user;
var pass=json.entities[0].password;
params["password"]=pass;
var servp=json.entities[0].servicepro;
params["servicepro"]=servp;
var atnd=json.entities[0].attendance[0].atn;
params["attendance"]=atnd;
Ti.API.info('atn'+atnd);
var atndate=json.entities[0].attendance[0].date;
params["attendance"]=atndate;
Ti.API.info('atn'+atndate);
if((user==$.usertf.value.toString() && pass==$.passtf.value.toString())
{
var window = Alloy.createController('profile', params).getView();
window.open();
}
else{
alert('error');
};
},
onerror : function(e) {
Ti.API.debug(e.error);
alert('error');
},
timeout : 5000 // in milliseconds
});
// Prepare the connection.
client.open("GET", url);
// Send the request.
client.send();//http request
}
$.index.open();
这里的 attendance 是存储在 apigee bass 中的两个对象 atn 和 date 的数组。 现在我得到了出勤值,但是当我超过这个出勤值时,即 数组到另一个使用参数的控制器,它在那里不被访问。 其他值示例用户名地址已正确访问。只有出勤值未被访问.. 下面是我的 profile.js 文件。这是我访问这些值的另一个控制器。
profile.js
var args = arguments[0] || {};
$.tff.text=args.username;
$.sertf.text=args.servicepro;
$.prevtf.text=args.attendance[0];
Ti.API.info('ath prof: '+args.attendance.atn);
Ti.API.info('ath date prof: '+args.date);
Ti.API.info('atnd:'+args.attendance[0].atn);
此处 profile.js 无法访问数组考勤。 如何访问这些数组元素 谁能帮帮我
您没有从 index.js
发送 attendance
作为数组并尝试在 profile.js
中访问它
如果你要改变
var atndate=json.entities[0].attendance[0].date;
params["attendance"]=atndate;
到
var atndate=json.entities[0].attendance[0];
params["attendance"]=atndate;
我认为它会起作用。
此外,您正在覆盖代码中的 params["attendance"]
。
希望对您有所帮助。