java xml转json数组,java-如何将单个子xml元素转换为Json Array
我正在使用WSO2 ESB,并嘗試將XML有效負(fù)載轉(zhuǎn)換為Json.
上面的屬性調(diào)解器將我的xml轉(zhuǎn)換為json,并且一切正常.
問題出在我的XML有效負(fù)載中的子節(jié)點(diǎn)上.
當(dāng)xml是
user1
user2
它被轉(zhuǎn)換為
"users": {
"user": [
"user1", "user2"
]
}
所以我剩下的接收json負(fù)載的完整端點(diǎn)期望列表“用戶”工作正常.
但是當(dāng)xml是
user1
轉(zhuǎn)換后的json看起來像這樣,
"users": {
"user": "user1"
}
因此,期望“用戶”列表的restfull端點(diǎn)未獲取列表,而是發(fā)送了一個字符串,并且數(shù)據(jù)類型不匹配導(dǎo)致找不到端點(diǎn).
如果進(jìn)一步嘗試,
user1
轉(zhuǎn)換后的結(jié)果為json,
{
"Data": {
"users": {
"user": {
"@Array": "true",
"$": "user1"
}
}
}
}
我需要的是
{
"Data": {
"users": {
"user": {
[
"user1"
]
}
}
}
}
在杰伊的建議之后,
謝謝周杰倫,
在您輸入之后,我嘗試了一些操作,但是在某些時候遇到了困難.這就是我正在嘗試的
mc.setPayloadJSON(
{
"someIds" : {
"someIdList" : (vUIdLen > 1 ? mc.getProperty("someIdList") : "["+someIdList+"]")
}
});
我正在檢查子節(jié)點(diǎn)的長度,如果大于1,則使用該節(jié)點(diǎn)的較早捕獲的值,即[“ abc”,“ pqr”],如果小于或等于1,則為使用單個json值并在“ [” someIdList“]”中構(gòu)造它,但是沒有一個被附加.它給出錯誤為“腳本引擎返回了執(zhí)行內(nèi)聯(lián)js腳本函數(shù)中介的錯誤”.
如何正確附加此內(nèi)容.
(vUIdLen > 1 ? mc.getProperty("someIdList") : "["+someIdList+"]")
上面的mc.getProperty(“ someIdList”)的值為[“ abc”,“ pqr”],“ [” someIdList“]”中someIdList的值為abc.
請?zhí)岢鼋ㄗh.
解決方法:
還有另一種解決方案,無需使用腳本中介程序,您可以添加
處理您的有效載荷的指令.如下;
user1
這將為用戶創(chuàng)建json數(shù)組.
{"users": {"user": ["user1"]}}
希望這會有所幫助.
標(biāo)簽:wso2esb,xml,json,java
來源: https://codeday.me/bug/20191027/1943370.html
總結(jié)
以上是生活随笔為你收集整理的java xml转json数组,java-如何将单个子xml元素转换为Json Array的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nature Genetics | 我国
- 下一篇: SLA介绍