Javascript 使用行中的多个冒号访问嵌套JSON键
我有一个JSON对象,我不知道如何访问它-控制台只打印Javascript 使用行中的多个冒号访问嵌套JSON键,javascript,json,node.js,Javascript,Json,Node.js,我有一个JSON对象,我不知道如何访问它-控制台只打印未定义的 我不知道如何使用冒号访问多个密钥 JSON对象: { 'soapenv:Envelope': { '$': { 'xmlns:soapenv': 'http://schemas.xmlsoap.org/soap/envelope/', 'xmlns:soapenc': 'http://schemas.xmlsoap.org/soap/encoding/', 'xmlns:xsd':
未定义的
我不知道如何使用冒号访问多个密钥
JSON对象:
{
'soapenv:Envelope': {
'$': {
'xmlns:soapenv': 'http://schemas.xmlsoap.org/soap/envelope/',
'xmlns:soapenc': 'http://schemas.xmlsoap.org/soap/encoding/',
'xmlns:xsd': 'http://www.w3.org/2001/XMLSchema',
'xmlns:xsi': 'http://www.w3.org/2001/XMLSchema-instance'
},
'soapenv:Header': [
''
],
'soapenv:Body': [
{
'ns5:loginResponse': [
{
'$': {
'xmlns:ns5': ' /* Website sending me this response */ '
},
'ns5:id': [
/*Sessionkey*/
],
'ns5:rc': [
'0'
]
}
]
}
]
}
}
我已经尝试过的:
console.dir(res["soapenv:Envelope"]["soapenv:Body"][0][0]['ns5:rc'])
console.dir(res["soapenv:Envelope"]["soapenv:Body"]["ns5:loginResponse"])["ns5:rc"]
。。。还有一些我不认识的人。一步一步来。冒号的存在不应该影响任何东西,键只是字符串。首先看看
res[“soapenv:Envelope”]
能带给你什么。对我来说,在控制台中,我可以很好地访问它
我试过了
[“soapenv:Envelope”][“soapenv:Body”][0][“ns5:loginResponse”][0][“ns5:rc”]
这也起到了作用
如果您无法访问对象及其从请求返回的结果,则很可能您的路由器在res上有特殊的方法,您应该使用这些方法来访问它 如果您通过美化程序运行JSON以使其更具可读性,可能会有所帮助 冒号没有任何意义,因为它们是字符串的一部分 以下是您需要访问的
ns5:rc
res['soapenv:Envelope']['soapenv:Body'][0]['ns5:loginResponse'][0]['ns5:rc']
分步进行,查看每个阶段的输出
请注意,数组和对象混合在一起,这是您遇到困难的地方。当输出以{
开头时,它是一个对象,因此下一个附加到条目的内容应该是属性名。相反,当输出以[
开头时,它是一个数组,因此下一个附加的内容应该是一个数字,例如[0],以获得第一个元素
res["soapenv:Envelope"]
{$:{…},soapenv:Header:Array(1),soapenv:Body:Array(1)}
[{…}]
res["soapenv:Envelope"]["soapenv:Body"][0]
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]
{ns5:loginResponse:Array(1)}
[{…}]
res["soapenv:Envelope"]["soapenv:Body"][0]
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]
{$:{…},ns5:id:Array(0),ns5:rc:Array(1)}
{xmlns:ns5:“/*网站向我发送此响应*/”}
“/*网站向我发送此回复*/”我认为您在
['ns5:rc']
之前缺少了一个['$']
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]["$"]
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]["$"]["xmlns:ns5"]