簡體   English   中英

JSON到XML轉換中的錯誤:無法從START_ARRAY令牌中反序列化java.util.HashMap的實例

[英]error in JSON to XML conversion: Can not deserialize instance of java.util.HashMap out of START_ARRAY token

我對這件事是完全陌生的,我正在嘗試將groovyscript中的JSON轉換為XML,這是代碼:

import groovy.xml.StreamingMarkupBuilder
import groovy.xml.XmlUtil

def xmlBuilder = new StreamingMarkupBuilder()
def item = payload
writer = xmlBuilder.bind {
mkp.declareNamespace( ns1: "TV")

  'ns1:tranfer ' {
    'merchant_id'()
    'surveyYear'()
    'merchant_password' ()
    'email'(item.AdditionalInfo.ClientEmail)
    'amount'(item.Amount)
    'reference_code'(item.WithdrawalId)
  }
}

return XmlUtil.serialize( writer )

我正在使用Anypoint Studio和SOAP UI進行測試。

當我使用單個JSON元素時,它可以工作

{ 
           "WithdrawalId": 12345, 
           "LegalEntity" : "xkvt", 
           "ProviderReference": "123xyz", 
           "Currency": "USD", 
           "Amount": 77, 
           "AdditionalInfo": {"ClientEmail":"test@test.com","CustomFieldX":"x"} 
        } 

但是,當我向JSON添加另一個元素時,它無法“反序列化”

[
  { 
           "WithdrawalId": 12345, 
           "LegalEntity" : "xkvt", 
           "ProviderReference": "123xyz", 
           "Currency": "USD", 
           "Amount": 757, 
           "AdditionalInfo": {"ClientEmail" : "tony@gmail.com"} },

{


           "WithdrawalId": 12345, 
           "LegalEntity" : "xkvt2", 
           "ProviderReference": "123xyz", 
           "Currency": "USD", 
           "Amount": 7808, 
           "AdditionalInfo": {"ClientEmail" : "tony@gmail.com"} } 

]

這是在SOAPui上引發的確切錯誤:

"<data contentType="null" contentLength="113"><![CDATA[Failed to transform        from "json" to "java.util.HashMap". (org.mule.api.transformer.TransformerMessagingException).]]></data>"

有什么想法可以解決這個問題嗎? 謝謝!

映射器的配置方式。 嘗試在映射器配置中包括以下行-mapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM