我正在使用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