我正在使用WSO2 ESB并试图将我的XML负载转换为Json。如何将单个子元素xml元素转换为Json数组
<property name="messageType" value="application/json" scope="axis2"/>
上述属性介体将我的xml转换为json,并且一切正常。
问题在于我的XML有效载荷中的子节点。
当XML是
<users>
<user>user1</user>
<user>user2</user>
</users>
它被转化为
"users": {
"user": [
"user1", "user2"
]
}
所以我休息充分端点recieving这是期待一个列表“用户”的JSON有效载荷工作正常。
但是当XML是
<users>
<user>user1</user>
</users>
转换后的JSON看起来像这样,
"users": {
"user": "user1"
}
因此,这是预期的“用户”列表中的问题的REST端点没有得到一个列表,而一字符串被发送并且数据类型不匹配导致找不到端点。
如果进一步的尝试,
<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>
这个转换提供了一个JSON作为,
{
"Data": {
"users": {
"user": {
"@Array": "true",
"$": "user1"
}
}
}
}
我需要的是,
{
"Data": {
"users": {
"user": {
[
"user1"
]
}
}
}
}
周杰伦的建议后,
谢谢Jay,
经过您的输入,我尝试了一些东西,但我被卡住了一些点。这就是我想,
mc.setPayloadJSON(
{
"someIds" : {
"someIdList" : (vUIdLen > 1 ? mc.getProperty("someIdList") : "["+someIdList+"]")
}
});</script>
我检查子节点的lenth,如果是大于1比我现在用的是之前捕获价值为节点,它是[“ABC”,“焊接工艺评定“],如果它小于或等于1,那么我将使用单个json值并在”[“+ someIdList +”]“中构造它,但其中任何一个都不会被追加。它会给出错误,如“脚本引擎返回执行内联js脚本函数调解的错误”。
如何正确追加此项。
(vUIdLen > 1 ? mc.getProperty("someIdList") : "["+someIdList+"]")
mc.getProperty的值( “someIdList”)以上是[ “ABC”, “PQR”]和someIdList的值在 “[” + someIdList + “]” 来为abc。
请建议。
老兄,你真了不起。上帝祝福你。 – ViS