ViS*_*ViS 4 java xml json wso2-esb
我正在使用 WSO2 ESB 并尝试将 XML 有效负载转换为 Json。
<property name="messageType" value="application/json" scope="axis2"/>
Run Code Online (Sandbox Code Playgroud)
上面的属性中介器将我的 xml 转换为 json,一切正常。
问题出在我的 XML 负载中的子节点上。
当 xml 为
<users>
<user>user1</user>
<user>user2</user>
</users>
Run Code Online (Sandbox Code Playgroud)
它被转换为
"users": {
"user": [
"user1", "user2"
]
}
Run Code Online (Sandbox Code Playgroud)
所以我的其余完整端点接收 json 有效负载,该负载期望列表“用户”工作正常。
但是当 xml 是
<users>
<user>user1</user>
</users>
Run Code Online (Sandbox Code Playgroud)
转换后的 json 看起来像这样,
"users": {
"user": "user1"
}
Run Code Online (Sandbox Code Playgroud)
因此,期望“用户”列表的restfull端点没有得到列表,而是发送了一个字符串,并且数据类型不匹配导致找不到端点。
如果进一步尝试,
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:json="http://james.newtonking.com/projects/json">
<users>
<user json:Array="true">user1</user>
</users>
</Data>
Run Code Online (Sandbox Code Playgroud)
这个转换给出一个 json 为,
{
"Data": {
"users": {
"user": {
"@Array": "true",
"$": "user1"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是,
{
"Data": {
"users": {
"user": {
[
"user1"
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
经过杰伊的建议,
谢谢杰伊,
在您输入后,我尝试了一些东西,但在某些时候我陷入了困境。这就是我正在尝试的,
mc.setPayloadJSON(
{
"someIds" : {
"someIdList" : (vUIdLen > 1 ? mc.getProperty("someIdList") : "["+someIdList+"]")
}
});</script>
Run Code Online (Sandbox Code Playgroud)
我正在检查子节点的长度,如果它大于 1,则使用该节点之前捕获的值 ["abc","pqr"],如果它小于或 = 1,则使用该节点的值使用单个 json 值并在“[”+someIdList+“]”内构造它,但它们中的任何一个都没有被附加。它给出错误“脚本引擎在执行内联 js 脚本函数中介时返回错误”。
我如何正确附加这个。
(vUIdLen > 1 ? mc.getProperty("someIdList") : "["+someIdList+"]")
Run Code Online (Sandbox Code Playgroud)
上面的 mc.getProperty("someIdList") 的值为 ["abc","pqr"],"["+someIdList+"]" 中的 someIdList 的值为 abc。
请建议。
还有另一种解决方案,无需使用脚本中介,您可以添加
<?xml-multiple?>
Run Code Online (Sandbox Code Playgroud)
处理您的有效负载的指令。如下;
<users>
<?xml-multiple?>
<user>user1</user>
</users>
Run Code Online (Sandbox Code Playgroud)
这将为用户创建 json 数组。
{"users": {"user": ["user1"]}}
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助。
| 归档时间: |
|
| 查看次数: |
10361 次 |
| 最近记录: |