使用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"]
}]
}]
}
}
答案 0 :(得分:0)
使用nodejs交互模式进行测试:
$ 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])
'You entered: TEST'
我试着从下面的评论中详细说明一下。没有容器,我试着解释一下:
您必须将json视为它的内容:对象或数据结构。
在python中,我们会在perl 哈希表等中说出 dict ...在全球范围内,& #39;所有关于关联数组
所以,当你在JSON中看到:
"key" : { "value" }
它是关联数组
相反,如果你看到
"key": [
{ "key1": "foo" },
{ "key2": "bar" },
{ "key3": "base" }
]
它是一个散列数组或关联数组。
当您访问一个没有空格或奇数字符的简单关联数组时,您可以(在js中执行:
variable.key
在您的情况下,您的密钥名称中包含奇数字符:
,因此x.s:Envelope
无法正常工作。相反,我们写:x['s:Envelope']
。
如果[]
中有关联数组数组,则必须告诉js
需要获取哪个数组编号。它只有一个关联数组的数组,所以它很简单,我们通过传递数组来深入数据结构,即'我们用
x['s:Envelope']["s:Body"][0]
^
|