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 从SOAP转换后如何访问嵌套的JSON节点?_Javascript_Json_Soap_Nodejs_Python_Perl_Js - Fatal编程技术网

Javascript 从SOAP转换后如何访问嵌套的JSON节点?

Javascript 从SOAP转换后如何访问嵌套的JSON节点?,javascript,json,soap,nodejs,python,perl,js,Javascript,Json,Soap,Nodejs,Python,Perl,Js,使用node.js(javascript)如何访问从SOAP数据转换而来的JSON数据中的GetDataResult节点 { "s:Envelope": { "$": { "xmlns:s": "http://schemas.xmlsoap.org/soap/envelope/" }, "s:Body": [{ "GetDataResponse": [{ "$": { "xmlns":

使用node.js(javascript)如何访问从SOAP数据转换而来的JSON数据中的GetDataResult节点

{
"s:Envelope": {
    "$": {
        "xmlns:s": "http://schemas.xmlsoap.org/soap/envelope/"
    },
    "s:Body": [{
        "GetDataResponse": [{
            "$": {
                "xmlns": "http://tempuri.org/"
            },
            "GetDataResult": ["You entered: TEST"]
        }]
    }]
  }
}
使用交互模式进行测试:

$ node
> var x = {
... "s:Envelope": {
.....     "$": {
.......         "xmlns:s": "http://schemas.xmlsoap.org/soap/envelope/"
.......     },
.....     "s:Body": [{
.......         "GetDataResponse": [{
.........             "$": {
...........                 "xmlns": "http://tempuri.org/"
...........             },
.........             "GetDataResult": ["You entered: TEST"]
.........         }]
.......     }]
.....   }
... }
undefined
> console.log(x["s:Envelope"]["s:Body"][0]["GetDataResponse"][0]["GetDataResult"][0])
输出: 说明: 我试着从下面的评论中详细阐述一下。没有容器,我试图解释:

您必须像它一样思考:对象或数据结构

在中,我们会说它是一个dict,在一个哈希表中,等等。。。从全局来看,这都是关于关联数组的

因此,当您在JSON中看到:

"key" : { "value" }
这是一个关联数组

如果你看到

"key": [
    { "key1": "foo" },
    { "key2": "bar" },
    { "key3": "base" }
]
它是一个散列数组或关联数组数组

当访问没有空格或奇数字符的简单关联数组时,可以(在do中:

在您的例子中,密钥名中有奇数字符
,因此
x.s:Envelope
不起作用。相反,我们写:
x['s:Envelope']

只要在
[]
中有关联数组,就必须告诉
js
需要获取哪个数组号。数组只有一个关联数组,所以很简单,我们通过传递数组号来深入数据结构,这就是我们所做的

x['s:Envelope']["s:Body"][0]
                          ^
                          |

欢迎使用Stack Overflow!当您在此处创建帐户时,建议您使用和阅读,以便熟悉该网站。您应该阅读的特定页面包括和。请执行这些介绍性步骤,然后相应地编辑您的帖子。这对我很有效。感谢您抽出时间发布对的答复我的问题。试着理解发生了什么。从你的解决方案中,我会说s:Envelope是整个容器。我请求s:body的第一个值。然后是GetDataResponse的第一个值。然后是GetDataResult的第一个值。如果我有错,请随意解释。添加了关于数据结构和如何获取t的解释褶边
variable.key
x['s:Envelope']["s:Body"][0]
                          ^
                          |