我有这个JSON对象,我不知道如何访问 - 控制台只打印undefined
。
我不知道如何使用冒号访问多个密钥。
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"]
......以及其他一些我不知道的人。
答案 0 :(得分:0)
当时采取一步。冒号的存在不应该影响任何东西,键只是字符串。首先看看res["soapenv:Envelope"]
给你带来了什么。对我来说,在控制台中,我可以很好地访问它。
我试过res
["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]["ns5:rc"]
这也有效。
如果您无法访问该对象及其从请求返回,则您的路由器很可能在res上有特殊的方法,您应该使用它来访问它。
答案 1 :(得分:0)
如果你通过美化器运行你的JSON以使其更具可读性,那可能会有所帮助。
冒号不会有任何意义,因为它们是字符串的一部分。
以下是您需要访问ns5:rc
res['soapenv:Envelope']['soapenv:Body'][0]['ns5:loginResponse'][0]['ns5:rc']
答案 2 :(得分:0)
请注意,阵列和物体混合在一起,这是您遇到困难的地方。在输出以{
开头的情况下,它是一个对象,因此附加到您的条目的下一个内容应该是属性名称。相反,当输出以[
开头时,它是一个数组,所以要追加的下一个应该是[0]这样的数字来获得第一个元素。
res["soapenv:Envelope"]
{$:{...},soapenv:Header:Array(1),soapenv:Body:Array(1)}
res["soapenv:Envelope"]["soapenv:Body"]
[{...}]
res["soapenv:Envelope"]["soapenv:Body"][0]
{ns5:loginResponse:Array(1)}
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"]
[{...}]
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]
{$:{...},ns5:id:Array(0),ns5:rc:Array(1)}
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]["$"]
{xmlns:ns5:“/ *网站向我发送此回复* /”}
res["soapenv:Envelope"]["soapenv:Body"][0]["ns5:loginResponse"][0]["$"]["xmlns:ns5"]
“/ *网站向我发送此回复* /”