Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用行中的多个冒号访问嵌套JSON键_Javascript_Json_Node.js - Fatal编程技术网

Javascript 使用行中的多个冒号访问嵌套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对象,我不知道如何访问它-控制台只打印
未定义的

我不知道如何使用冒号访问多个密钥

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"]