Javascript 从SOAP转换后如何访问嵌套的JSON节点?
使用node.js(javascript)如何访问从SOAP数据转换而来的JSON数据中的GetDataResult节点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":
{
"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]
^
|