[英]How to access variables inside an array
因此,我一直在努力解决昨天和今天的所有问题,但无法解决。 我在名为的变量中返回了以下内容
var myRequest = req.body
console.log(myRequest)
产生以下内容:
{
"methodcall": {
"methodname": ["userLogin"],
"params": [{
"param": [{
"value": [{
"string": ["test1"]
}]
}, {
"value": [{
"string": ["password"]
}]
}]
}]
}
}
现在,我需要访问params键,并访问第一个param值,以便将第一个param值字符串中返回的任何内容作为用户名存储在变量中,并将在param值字符串中(第二个)返回的所有内容存储为存储为密码。
所以最终的效果是这样的:
var username = myRequest.methodcall.params.param...first value string
var password = myRequest.methodcall.params.param...second value string
但是,我真的很难理解该如何做。 我猜想forEach循环会出现在其中,但是我没有使用它们的经验,因此希望您了解一些技巧。
另外,当我尝试执行myRequest.methodcall
,我总是返回未定义的返回值。
任何帮助将不胜感激!
您发布的是JSON。 您需要将其设置为:
var myRequest = JSON.parse(req.body)
这将允许您像普通的js对象一样访问它。
听起来您的值在JSON中,请先解析它,然后大概应该能够获取其值:
var myRequest = JSON.parse(req.body);
var userName = myRequest.methodcall.params[0].param[0].value[0].string[0];
var password = myRequest.methodcall.params[0].param[1].value[0].string[0];
使用.
访问对象中的键, []
访问数组中的索引。
此代码应工作:
var username = myRequest.methodcall.params[0].param[0].value[0].string[0]
如果您想在处使用循环,请获取值test1
, password
等。 您可以使用循环并访问param
数组:
var params = myRequest.methodcall.params[0].param;
params.forEach(function(item){
console.log(item.value[0].string[0]);
});
//var myRequest = JSON.parse(req.body) // if JSON var myRequest = { "methodcall": { "methodname": ["userLogin"], "params": [{ "param": [{ "value": [{ "string": ["test1"] }] }, { "value": [{ "string": ["password"] }] }] }] } }; var params = myRequest.methodcall.params; var uname, pwd; for (var i = 0; i < params.length; i++) { console.log("uname is " + params[i].param[0].value[0].string); console.log("pwd is " + params[i].param[1].value[0].string) }
如果您的响应结构相同,则无需进行循环等操作,只需直接从响应中访问用户名和密码即可。 尝试这个。
var username = myRequest.methodcall.params[0].param[0].value[0].string[0];
var password = myRequest.methodcall.params[0].param[1].value[0].string[0];
您是否调试了代码? 我的意思是这些代码:
var username = myRequest.methodcall.params.param[0];
var password = myRequest.methodcall.params.param[1];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.