Geo*_*ett 14 json soap node.js loopbackjs
在Nodejs中使用Soap模块(通过loopback-connector-soap),我正在尝试将json转换为xml以获取我的soap请求,但是我遇到了一些问题......
这是什么:
<ns:UserDefinedFields>
<ns:UserDefinedField>
<ns:displayName>Campaign?</ns:displayName>
<ns:fieldValue>Yes</ns:fieldValue>
</ns:UserDefinedField>
</ns:UserDefinedFields>
<ns:UserDefinedFields>
<ns:UserDefinedField>
<ns:displayName>Anticipated Use</ns:displayName>
<ns:fieldValue>6</ns:fieldValue>
</ns:UserDefinedField>
Run Code Online (Sandbox Code Playgroud)
应该是什么:
<ns:UserDefinedFields>
<ns:UserDefinedField>
<base:displayName>Campaign?</base:displayName>
<base:fieldValue>Yes</base:fieldValue>
</ns:UserDefinedField>
<ns:UserDefinedField>
<base:displayName>Anticipated Use</base:displayName>
<base:fieldValue>6</base:fieldValue>
</ns:UserDefinedField>
</ns:UserDefinedFields>
Run Code Online (Sandbox Code Playgroud)
<ns:UserDefinedFields><base:fieldValue>而不是<ns:fieldValue>任何建议都会非常有帮助!谢谢!
XML:
{
...
"UserDefinedFields": [
{
"displayName": "Campaign?",
"fieldValue": "Yes"
},
{
"displayName": "Anticipated Use",
"fieldValue": 6
}
]
...
}
Run Code Online (Sandbox Code Playgroud)
XSD:
...
<xs:element name="UserDefinedFields" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="UserDefinedField" type="base:UserDefinedFieldType" minOccurs="0" maxOccurs="15"/>
</xs:sequence>
</xs:complexType>
</xs:element>
...
Run Code Online (Sandbox Code Playgroud)
要处理命名空间,请将选项传递给ignoredNamespaces soap.createClient。
{
"ignoredNamespaces": {
namespaces: ['ns']
},
}
Run Code Online (Sandbox Code Playgroud)
然后手动添加命名空间。它很丑,但很有效。
要处理多个UserDefinedFields,它应该如下所示:
{
. . .
DomainRegistration['ns:UserDefinedFields']['ns:UserDefinedField'][0] : {
"base:displayName": "Campaign?",
"base:fieldValue": "Yes"
},
DomainRegistration['ns:UserDefinedFields']['ns:UserDefinedField'][1] : {
"base:displayName": "Anticipated Use",
"base:fieldValue": 6
}
. . .
}
Run Code Online (Sandbox Code Playgroud)
或者更简单地说:
{
ouside: {
insideA: [
'one',
'two',
]
insideB: [
{'one':'ONE'},
{'two':'TWO'}
]
}
}
//will create:
<outside>
<insideA>
<one />
<two />
</insideA>
<insideB>
<one>ONE</one>
</insideB>
<insideB>
<two>TWO</two>
</insideB>
</outside>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
814 次 |
| 最近记录: |