2015-06-19 102 views
2

我在有效載荷2 JSON源(使用收集),我計劃使用Groovy腳本,使之變成一個JSON(我希望是這樣的:消費org.glassfish.grizzly.utils.BufferInputStream @騾子

{key:value}{key:value}) 
<scripting:transformer doc:name="Groovy"> 
     <scripting:script engine="Groovy"><![CDATA[return '{"data":['+payload.toString().replace("}{","},{"+']}']]></scripting:script>  
    </scripting:transformer> 

(預期輸出:{"data":[{key:value},{key:value}]}

,但我得到:

{"data":[[[email protected], [email protected]]]} 

W/O Groovy腳本:

[[email protected], [email protected]] 

的InputStream

數組

我試着用字節數組字符串,對象字符串,但它不工作,我不知道我是怎麼解決這個

回答

2

替換:

payload.toString().replace("}{","},{") 

有:

payload.collect { it.text }.join(',') 

說明:.text d將輸入流串行化爲一個字符串,因此payload.collect { it.text }將產生一個字符串集合。然後join(',')需要串聯這些字符串的護理,它們與分離,

+0

<收集分離器DOC:名稱=「集合分配器」 /> <對象到字符串變壓器DOC:名稱=「對象到字符串」 /> <腳本:transformer doc:name =「Groovy」> <腳本引擎=「Groovy」><![CDATA [return '{「data」:'+ payload.toString()+'}']]> Armok

+0

我愛你的解決方案@ david-dossot我這樣解決它,但im現在就去改變它 – Armok

+1

@Armok如果你非常喜歡他的解決方案你爲什麼不投票呢 – granthbr